I already read many questions related to this topic, but every answer just say that i should put a return statement so it doesn't send 2 responses.
I understand that, but i keep getting the same error, even if i have a return for all the possible cases.
Check below:
identifyNewPlant: function (req, res, next) {
var genreId = req.params.id;
var plantDescription = req.body.description;
var flowerName = req.body.specie;
var userId = req.userId;
var bitmap = new Buffer(req.body.base64, 'base64');
var fotoIdAux = req.fotoId;
var fotoId = parseInt(fotoIdAux);
var pathToSave = __dirname + "/../public/images/Thumbnail.jpg";
var path = "public/images/" + flowerName + "/Thumbnail.jpg";
fsPath.writeFile(pathToSave, bitmap, function (err) {
if (err) {
return (err);
}
Plant.create({
specie: flowerName,
description: plantDescription,
directory: path,
genreId: genreId,
userId: userId
}).then(function(plant){
Foto.update({ plantId: plant.id, image: null }, {
where: { id: fotoId }
}).then(function (result) {
return res.status(200).json({ message: "new plant identified with success" });
}).catch(function (error) {
return res.status(400).json({ error: "failed to identiy plant" })
})
}).catch(function(err){
return res.send(400).json({error : "cannot create a new plant"});
})
});
}
this is my route that i created, and i get always the error on the last catch dunno why.
here is the stacktrace
Unhandled rejection Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:357:11)
at ServerResponse.header (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\express\lib\response.js:725:10)
at ServerResponse.send (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\express\lib\response.js:170:12)
at ServerResponse.json (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\express\lib\response.js:256:15)
at .<anonymous> (C:\Users\FilipeCosta\Desktop\FloraApp\server\controller\plants.js:97:38)
at tryCatcher (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\sequelize\node_modules\bluebird\js\main\util.js:26:23)
at Promise._settlePromiseFromHandler (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\sequelize\node_modules\bluebird\js\main\promise.js:503:31)
at Promise._settlePromiseAt (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\sequelize\node_modules\bluebird\js\main\promise.js:577:18)
at Promise._settlePromises (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\sequelize\node_modules\bluebird\js\main\promise.js:693:14)
at Async._drainQueue (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\sequelize\node_modules\bluebird\js\main\async.js:123:16)
at Async._drainQueues (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\sequelize\node_modules\bluebird\js\main\async.js:133:10)
at Immediate.Async.drainQueues (C:\Users\FilipeCosta\Desktop\FloraApp\server\node_modules\sequelize\node_modules\bluebird\js\main\async.js:15:14)
at runCallback (timers.js:672:20)
at tryOnImmediate (timers.js:645:5)
at processImmediate [as _immediateCallback] (timers.js:617:5)
via Filipe Costa
No comments:
Post a Comment