Javascript 从内部回调的可见性

Javascript 从内部回调的可见性,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,我在下面编写的代码是controller 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':

我在下面编写的代码是controller 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);
});
...

由于
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);
});
...

很抱歉,我是个白痴,
res.render()
在回调中覆盖
render
。出于这个原因,它不起作用。谢谢!很抱歉,我是个白痴,
res.render()
在回调中覆盖
render
。出于这个原因,它不起作用。谢谢!