Na parte do tratamento do erro, no "app/index.js" , o app.use
passa o erro como primeiro parâmetro do callback "(erro, req, res, next)=>{...}
", to com duvida se no primeiro parâmetro sempre é o colocado o que volta do next
anterior, que nesse caso seria do put do "/routes/fornecedor/index.js"
/routes/fornecedor/index.js:
const express = require('express')
const router = express.Router()
const tabelaFornecedor = require('./tabelaFornecedores')
const Fornecedor = require('../../model/Fornecedor')
...
router.put('/:idFornecedor',async (req,res,next)=>{
try{
const id = req.params.idFornecedor
const dados = req.body
const concatFornecedor = Object.assign({},{id:id},dados)
const fornecedor = new Fornecedor(concatFornecedor)
await fornecedor.atualizar()
res.status(204)
res.end()
}catch(e){
next(e)
}
})
...
module.exports = router
app/index.js:
const express = require('express')
const bodyParser = require('body-parser')
const config = require('config')
const routerFornecedor = require('./routes/fornecedores')
const NotFound = require('./error/NotFound')
const app = express()
app.use(bodyParser.json())
app.use('/api/fornecedores',routerFornecedor)
app.use((erro, req, res, proximo)=>{
if(erro instanceof NotFound){
res.status(404)
}else{
res.status(400)
}
res.send(
JSON.stringify({
mensagem: erro.message,
id: erro.idError
})
)
})
app.listen(3000, ()=>{
console.log('Api rodando na porta 3000');
})