javascript - 无法读取 nodejs 中未定义的属性 'then'

标签 javascript node.js express passport.js

我不知道为什么我会在我的代码中遇到这个错误。

    fineOneBySocialLogin(profile).then(function (user) {

    }, function (err) {
        return done(err, null);
    })



var fineOneBySocialLogin = function (req, res) {
    auth.findOne({ username: req.emails[0].value }).then(function (user) {
        if (!user) {
            console.log('testing 1');
            var userForm = {};
            userForm = {
                email: req.emails[0].value
            };
            user.createUser(userForm).then(function(user) {
                if (user) {
                    console.log('testing 2');
                    auth.findOne({ username: req.emails[0].value }).then(function (user) {
                        if (user) {
                            console.log('testing 3');
                            return user;
                        }
                    });
                }
            });
        } else {
            return user;
        }
    });
}

最佳答案

您应该在第二个 raw 中添加 return before auth.findOne

var fineOneBySocialLogin = function (req, res) {
  return  auth.findOne({ username: req.emails[0].value }).then(...

关于javascript - 无法读取 nodejs 中未定义的属性 'then',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34918451/

相关文章:

javascript - 如何重置添加/删除字段?

javascript - 从另一台服务器读取 Node.js 中的大文件

javascript - 如何使用 Express 设置日志记录级别?

node.js - Expressjs 无法识别静态文件

node.js - 将查询从链接传递到服务器,第一次加载查询值未定义,重新加载后得到正确的查询

javascript - 使用 jQuery 循环遍历元素的最简洁方法?

javascript - Web 应用程序国际化,是服务器端还是客户端?

javascript正则表达式选择带引号的字符串但不转义引号

javascript - 从外部事件控制angularjs ui切换

mysql - 如何运行动态查询数组的事务