从内部回调的可见性

visibility from inside callback

本文关键字:可见性 回调 内部      更新时间:2023-09-26

我在下面写的代码是控制器user.js 的一部分

exports.login = function(req, res) {
var db = require('../db').tables;
//db.user.find(function(err, user) { console.log(user) });
switch (req.method) {
    default:
    case 'GET':
    break;
    case 'POST':
        db.user.find({username: req.body.username}, function(err, user) {
        });
        console.log(user);
    break;
}
res.render('user/login', {title: 'Login'});
};

问题是函数db.user.find,我在回调中没有可用的变量res

我已经试过多次重读文档mongoose,以使用更舒适的语法,但什么都没有。

你建议我如何更改代码?

抱歉英语不好,但我用了谷歌(

因为find的匿名回调函数是在login函数的上下文中定义的,所以回调已经可以通过闭包访问res

...
db.user.find({username: req.body.username}, function(err, user) {
    // code here can reference res from the enclosing scope
    res.json(user);
});
...