mongoose 4.0连接错误

时间:2015-06-02 13:41:01

标签: node.js mongodb mongoose

我在windows xp 32位操作系统上使用mongodb 3.0和mongoose 4.0 它对我的小项目不起作用并且出错。我试图简化问题。 所以我做了一个快速测试:

express microblog
npm install

然后在db.js中,我把

var mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/test',console.error.bind(console, 'connection error:'));
var db = mongoose.connection;
db.once('open', function (callback) {
  console.log("succesfully connected");
});

然后我在端口27017启动了mongodb服务器。当我运行db.js时,我得到了这样的东西:

C:\Program Files\nodejs\test\microblog>node db.js
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }

js-bson: Failed to load c++ bson extension, using pure JS version
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }

js-bson: Failed to load c++ bson extension, using pure JS version
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }

js-bson: Failed to load c++ bson extension, using pure JS version
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }

js-bson: Failed to load c++ bson extension, using pure JS version
connection error: { [MongoError: connect UNKNOWN] name: 'MongoError', message: '
connect UNKNOWN' }

最后一行与我在其他小项目中的内容相同。 我试着安装mongodb2.6,它有同样的问题。 当我在其他js文件中使用mongo-connection而不是mongoose时,mongodb服务器工作。我尝试重新启动计算机,删除了锁定文件并执行了mongod --repair,问题仍然存在,请帮助,非常感谢...

1 个答案:

答案 0 :(得分:0)

问题是WinXP。较新版本的MongoDB不支持WinXP,而Mongoose使用mongodb模块作为依赖。 尝试使用旧版本的Mongoose,这是我的package.json用于测试应用程序:

{
 "name": "test",
  "version": "0.0.1",
  "private": true,
  "scripts": {
     "start": "node ./bin/www"
  },
 "dependencies": {
 "body-parser": "~1.13.2",
 "cookie-parser": "~1.3.5",
 "debug": "~2.2.0",
 "ejs": "~2.3.3",
 "express": "~4.13.1",
 "mongoose": "3.8",
 "morgan": "~1.6.1",
 "serve-favicon": "~2.3.0"
 }
}

Mongoose的3.8版本使用mongodb v1.4.38作为依赖,它在WinXP上运行正常。