如何从nodejs中的回调中返回一个值?

时间:2013-06-10 15:56:57

标签: node.js

这是我的index.js

app.get('/api/user', auth.authenticate, function(req, res){
    res.send("hi");
});

这是我的auth.authenticate功能:

exports.authenticate = function(req, res,done) {
 // function checkToken(req,res,next){
    console.log(req.body);
    authToken = req.body["auth_token"]
    consumerKey = req.body["consumer_key"]
    checkAuth(authToken,consumerKey,function response(user){
      done();
    });
}

在进行身份验证后,我想将“user”返回到index.js中的app.get,以便我可以使用它来检索更多数据,但我不知道如何做到这一点。

是否可以通过done()回调发送用户?我尝试了但是没有成功。

1 个答案:

答案 0 :(得分:1)

是的,因为在Express.js中传递的请求对象是相同的。只需将其添加到请求中,如下所示:

checkAuth(authToken,consumerKey,function response(user){
  request.user = user;
  done();
});

然后你可以在index.js

中使用它
app.get('/api/user', auth.authenticate, function(req, res){
    res.send("hi " + req.user);
});
相关问题