0

我正在尝试将用户存储在我自己的mongo数据库而不是默认数据库(auth0 服务器)上。

下面是脚本:

function create (user, callback) {
    mongo('mongodb://admin:pass@localhost:27017/mydb', function (db) {
    var users = db.collection('subscribers');

    users.findOne({ email: user.email },
        function (err, withSameMail) {

            if (err) return callback(err);
            if (withSameMail) return callback(new Error('the user already exists'));

            user.password = bcrypt.hashSync(user.password, 10);

            users.insert(user, function (err, inserted) {  
                if (err) return callback(err);
                callback(null);
            });
        });
    });
}

这是我尝试创建用户时遇到的错误:

[Error] Error: socket hang up
at createHangUpError (_http_client.js:200:15)
at Socket.socketOnEnd (_http_client.js:285:23)
at emitNone (events.js:72:20)
at Socket.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:905:12)
at nextTickCallbackWith2Args (node.js:437:9)
at process._tickDomainCallback (node.js:392:17)
4

1 回答 1

3

您的 mongodb 在localhost中(请参阅您的连接字符串)。该create脚本在 Auth0 服务器中运行,因此无法访问localhost(您的机器)。

通常,您的实例将在可从 Auth0 访问的服务器上运行(例如 mongolabs、AWS 中的服务器等)。如果您正在测试,那么您可能需要查看ngrok

Blakes 建议缓存连接是一个很好的建议,但它是一种优化,而不是它不起作用的原因。

于 2016-02-28T00:21:43.907 回答