【发布时间】:2016-04-05 16:53:18
【问题描述】:
目前我正在使用中间件开发 Express 应用程序。第一步,我需要对用户进行身份验证。在app.js 我已经:
app.post('/api/ecosystem/project/auth',
middleware.authenticate,
function(req,res){
}
);
在中间件中,我需要访问用户提供的params,所以访问body,设置headers。在middleware/index.js:
function authenticate(req, res, next){
var plainPassword = req.body.password,
userName = req.body.username;
models.connection.query(
`SELECT * FROM TABLE_1 WHERE username = ?`,
[userName] ,function(err, query) {
var err = true; //for testing purposes
if (err) res.statusCode = 500;
console.log('continues');
//...
当我尝试发送返回的状态码时出现问题。由于标头已设置,我不能使用带有错误参数的 res.send()、res.status()、next() 等。如果我这样做,我有一个关于 Headers have already been sent 的错误。有一个very amazing answer here about this。
所以我可以只使用res.statusCode 但这不会返回状态并且不会停止流程。此外,我无法在 JSON 文件中以 err.message 的形式发送其他参数。
关于如何解决这个问题的任何想法?
谢谢!!
【问题讨论】:
标签: node.js express http-headers