【问题标题】:visibility from inside callback内部回调的可见性
【发布时间】:2012-08-26 05:35:29
【问题描述】:

下面我写的代码是控制器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 以使用更舒适的语法但没有。

您建议我如何更改代码?

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

【问题讨论】:

    标签: javascript node.js mongoose


    【解决方案1】:

    因为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。由于这个原因,它没有工作。谢谢!
    猜你喜欢
    • 2020-08-29
    • 2015-11-24
    • 2022-12-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2012-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多