node.js - mongodb update is throwing a critical error -


when try update user using web form, runs app.post on express. object user correct, throws error in node console

app.post('/register/update', jsonparser, (request, response) => {   let user = request.body.user;   let users = mongoutil.users();    console.log(user);    users.update({email: user.email}, user, (err, res) => {     if(err) {       response.sendstatus(400);     }     response.sendstatus(201);   }); }); 

in node console:

{ _id: '578246ec9eb0587a5d67b8c9',   email: 'test@test.com',   zipcode: '1231-123',   companyname: 'test',   tradename: 'test',   contactname: 'test',   tel: '(14) 1232-1231',   password: 'test',   passwordconfirm: 'test',   adress: 'test',   adresscomplement: 'test',   adressnumber: '123' } /home/ec2-user/ ... /mongodb/lib/utils.js:98     process.nexttick(function() { throw err; });                                   ^  error: can't set headers after sent.     @ serverresponse.outgoingmessage.setheader (_http_outgoing.js:346:11)     @ serverresponse.header (/home/ec2-user/ ... /node_modules/express/lib/response.js:719:10)     @ serverresponse.contenttype (/home/ec2-user/ ... /node_modules/express/lib/response.js:552:15)     @ serverresponse.sendstatus (/home/ec2-user/ .. /node_modules/express/lib/response.js:340:8)     @ users.update (/home/ec2-user/menuwebapp/server/app.js:94:14)     @ handlecallback (/home/ec2-user/ ... /node_modules/mongodb/lib/utils.js:96:12)     @ /home/ec2-user/ ... /node_modules/mongodb/lib/collection.js:1008:42     @ commandcallback (/home/ec2-user/ ... /node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:1194:9)     @ callbacks.emit (/home/ec2-user/ ... /node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:119:3)     @ connection.messagehandler (/home/ec2-user/ ... /node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:358:23) 

i'm dealing callback problem, don't have idea how solve d:

the error not coming update statement coming callback function.

specifically these lines of code.

if(err) {   response.sendstatus(400); } response.sendstatus(201); 

what doing if there error send status 400, send status 201. problem once send response headers requestor can't try , set headers again.

so code should change to:

if(err) {    response.sendstatus(400); }else{    response.sendstatus(201); } 

so if error generated send 400 response otherwise send 201 response instead of trying send 400 response , 201 response after.


Comments

Popular posts from this blog

sql - invalid in the select list because it is not contained in either an aggregate function -

Angularjs unit testing - ng-disabled not working when adding text to textarea -

How to start daemon on android by adb -