Olá. Configurei o meu index.js da seguinte forma.
const express = require('express');
const config = require('config');
const fornecedoresRoutes = require('../routes/fornecedores');
const NaoEncontrado = require('./errors/NaoEncontrado')
const CampoInvalido = require('./errors/CampoInvalido')
const DadosNaoFornecidos = require('./errors/DadosNaoFornecidos')
const ValorNaoSuportado = require('./errors/ValorNaoSuportado');
const formatosAceitos = require('./serializador').formatosAceitos;
const SerializerError = require('./serializador').SerializadorErro;
const app = express();
app.use(express.json());
app.use(express.urlencoded({extended: true}));
app.use((req, res, next) => {
let formatReq = req.header('Accept');
if (formatReq === '*/*') {
formatReq = 'application/json';
}
if (formatosAceitos.indexOf(formatReq) === -1) {
res.status(406).json({ message: 'Formato da requisição não é aceito' });
return
}
res.setHeader('Content-Type', formatReq);
next();
})
app.use((error, _req, res, next) => {
let status = 500;
if(error instanceof NaoEncontrado) {
status = 404;
}
if(error instanceof CampoInvalido || error instanceof DadosNaoFornecidos) {
status = 400;
}
if(error instanceof ValorNaoSuportado) {
status = 406;
}
const serializador = new SerializerError(res.getHeader('Content-Type'));
res.status(status).send(serializador.serializar({
mensagem: error.message,
id: error.idErro
}
));
});
app.use((_req, res, next) => {
res.set('Access-Control-Allow-Origin', 'https://developer.mozilla.org');
next();
});
app.use('/api/fornecedores', fornecedoresRoutes);
app.listen(config.get('api.porta'), () => {
console.log(`Server started on ${config.get('api.porta')}`);
});
module.exports = app;
Ao realizar o fetch no navegador retornou o seguinte erro:
Refused to connect to 'http://localhost:3000/api/fornecedores/1/produtos' because it violates the following Content Security Policy directive: "connect-src 'self' www.google-analytics.com stats.g.doubleclick.net".
Refused to connect to 'http://localhost:3000/api/fornecedores/1/produtos' because it violates the document's Content Security Policy.
Repare que no index.js foi inserido o seguinte cabeçalho:
app.use((_req, res, next) => {
res.set('Access-Control-Allow-Origin', 'https://developer.mozilla.org');
next();
});
Ainda assim os erros persistiram. Estaria esta forma de utilização do cabeçalho desatualizada ou tenho que inserir outros cabeçalhos? Desde já agradeço pelo suporte.
Obs.: Clonei o repositório do curso em outra pasta, inseri o cabeçalho como na forma acima e ainda assim apresentou o mesmo erro.