这里是我的代码:尽管发送状态码,但为什么会收到“错误:发送后无法设置标题”?
app.post('/register', function(req, res){
var user = new User(req.body);
if (req.body.password.length <= 5){ res.status(400).send('error: password must be longer'); }
if (req.body.username.length <= 3){ res.status(400).send('error: username must be longer'); }
User.findOne({
username: req.body.username
}, function(err, userr){
if(err) {res.status(400).send(err); }
if (userr){res.status(400).send('error: user already exists'); }
user.save(function(err, user){
if (err){ res.status(400).send('couldn\tt save fo sum rezon'); }
if (user) { res.send(user); }
});
});
});
这里是我的错误:
home/michael/passport-local-implementation/node_modules/mongoose/node_modules/mpromise/lib/promise.js:108
if (this.ended && !this.hasRejectListeners()) throw reason;
^
Error: Can't set headers after they are sent.
我感到困惑,我要送头不止一次?这些代码不应该在满足其中一个条件时立即停止执行,或者如果没有满足条件,那么只需渲染用户?
奖励积分如果有人可以给我资源在哪里阅读如何快速路由工作的细节点!
与此类似的问题(但不完全相同的副本):https://stackoverflow.com/questions/7042340/node-js-error-cant -set-headers-after-they-are-sent –