事象
node.jsからmongodbに接続しようとプログラムを作成して実行したところ
以下エラーがでてまう。
[vagrant@localhost nodejs]$ node mongo.js
{ name: 'MongoError', message: 'connect ECONNREFUSED' }
プログラムは以下
var MongoClient = require('mongodb').MongoClient,
settings = require('./settings');
MongoClient.connect("mongodb://"+settings.host+"/"+settings.db, function(err, db) {
if (err) { return console.dir(err); }
console.log("connected to db");
db.collection("users", function(err, collection) {
var docs = [
{name: "taguchi", score: 40},
{name: "fkoji", score: 80},
{name: "dotinstall", score: 60}
];
collection.insert(docs, function(err, result) {
console.dir(result);
});
});
});
解決方法
- まず、そもそも/data/dbをつくっていなかったので、つくりました。
$ sudo mkdir -p /data/db
- mongodbに接続して、プログラム実行前に、nodedbデータベースおよびusersコレクションを作りました。
$ mongo nodedb
> db.createCollection('users')
- プログラム中の以下の記述を
MongoClient.connect("mongodb://"+settings.host+"/"+settings.db,
MongoClient.connect("mongodb://localhost:1337/"+settings.db,
に変更しました。
これで接続できるようになりました。
good ruck!