これらの設定とコードでローカル開発 MongoDB を使用すると、Node.js アプリのセットアップが機能し、正常に実行されます。
var MongoDB = require('mongodb').Db;
var Server = require('mongodb').Server;
var dbPort = 27017;
var dbHost = 'localhost';
var dbName = 'my-db';
var db = new MongoDB(dbName, new Server(dbHost, dbPort, {auto_reconnect: true}), {w: 1});
db.open(function(e, d){
if (e) {
console.log(e);
} else{
console.log('connected to database :: ' + dbName);
}
});
しかし、MongoHQ URI に接続しようとすると、Failed to Connect エラーが発生します。
上記のコードで mongodb://username:password@linus.mongohq.com:10022/my-db の URI を使用する方法がわかりません。
編集: 問題を解決するために db 変数をどのように使用しているかを示すコードの次の部分を次に示します。
var accounts = db.collection('accounts');
/* login validation methods */
exports.autoLogin = function(user, pass, callback)
{
accounts.findOne({user:user}, function(e, o) {
if (o){
o.pass == pass ? callback(o) : callback(null);
} else{
callback(null);
}
});
}
exports.manualLogin = function(user, pass, callback)
{
accounts.findOne({user:user}, function(e, o) {
if (o == null){
callback('user-not-found');
} else{
validatePassword(pass, o.pass, function(err, res) {
if (res){
callback(null, o);
} else{
callback('invalid-password');
}
});
}
});
}