我正在尝试将用户存储在我自己的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)
答案 0 :(得分:3)
您的mongodb位于 localhost 中(请参阅您的连接字符串)。 create
脚本在Auth0服务器中运行,因此无法访问 localhost (您的计算机)。
通常,您的实例将在可从Auth0访问的服务器上运行(例如,mongolabs,AWS中的服务器等)。如果您正在测试,那么您可能需要查看ngrok
Blakes建议缓存连接是一个很好的建议,但这是一个优化,而不是它无法正常工作的原因。