javascript - 回调内部的可见性

标签 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':
        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);
});
...

关于javascript - 回调内部的可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12125284/

相关文章:

javascript - 使用 jQuery 错误设置自定义数据属性

node.js - 坚持进行简单的网络聊天

javascript - 从node.js发送一个简单的json到index.html

javascript - 使用 Mongoose 进行动态查询

node.js - 嵌入式数组推送在 Mongoose 中不起作用 - 推送未定义

javascript - 为什么我在将 javascript 连接到简单 html 时出错?

javascript - jQuery:子项计数 = 0 和 ajax

javascript - Mongoose 的默认数据库数据

javascript - 为什么不允许值为 0 的变量询问是否存在

node.js - Electron-Builder:在MacOS上使用松鼠构建Windows安装程序失败