在node.js中,我有一个函数,在任何操作检查请求开始时是否一切正常(验证JSON等)之前。几乎一切都运转正常,但我有一个问题。我现在不知道如何使用next();
传递对象引用使用。来调用检查功能。
app.all('/:action', frontendProcessor.checkSession());
在此代码的中间,我使用了next()
frontendProcessor.checkSession = function(){
return function(req, res, next) {
var inputJson = req.body.JSONVAR || false,
action = req.params.action;
// validation
frontendProcessor.validateJSON(inputJson, afterValidation);
function afterValidation(err, inputData){
if(err) {
global.consoleLog(err);
res.send(fail);
}else{
if(action == 'login' ){
console.log(inputData);
next(inputData); //<< here, how to pass inputData thru next
}else{
mUsers.checkSessionId(email, sessionId, process);
};
};
};
function process(response) {
if(!response){
global.consoleLog("Security Error: Bad session Id.");
var response = JSON.stringify(badSession);
res.send(response);
}else{
global.consoleLog('Security: session ok! next');
next(inputData);
};
};
};
};
答案 0 :(得分:1)
next()
不应该传递数据,因为它只是为了调用下一个请求处理程序,而不是特定的请求处理程序。 Nirk的评论是正确的,您应该将数据附加到req
对象,并在需要时从那里读取。