在JavaScript / NodeJS中返回错误号或错误状态代码的最有效方法是什么?例如,我想在以下代码段中返回401的状态代码(或错误代码):
var login = function (params, callback) {
var email = params.email || '',
password = params.password || '';
if (!isValidEmail(email)) {
return callback(new Error('Email address required', 401));
}
// Do something else
};
上面的登录方法将按如下方式调用:
authRouter.post('/login', function(req, res) {
svc.login(req.body, function (err, response) {
if (err) {
err.statusCode = err.statusCode || 401;
return res.status(err.statusCode).send({ message: err.message });
} else {
return res.send(response);
}
});
});
此处的目标是在方法中设置err.statusCode
(或类似)并通过回调传回。基本上,我正在寻找这个的速记版本:
var err = new Error('Email address required');
err.statusCode = 401;
return callback(err);
答案 0 :(得分:-1)
在nodeJS中,您应该在回调的第一个参数中返回错误。
myFunctionThatDoesSomethingAsync (callback) {
doSomethingAsync('asanas', function (){
//do something
return callback(err,results)
})
}
myFunctionThatDoesSomethingAsync(function (err,results) {
if (!err)
doSomethingWith(results)
})
了解详情:http://fredkschott.com/post/2014/03/understanding-error-first-callbacks-in-node-js/
抱歉,我再次阅读了您的问题,并且您应该执行类似以下操作的NodeJS HTTP响应:
res.writeHead(401, {'Content-Type': 'text/plain'});
res.end('Email address required'');