Node.js MongoDB 2.0.18无法通过节点连接,而旧版本1.4.32可以工作
我通过npm使用Node.js MongoDB 2.0.18无法通过节点连接,而旧版本1.4.32可以工作,node.js,mongodb,database-connectivity,Node.js,Mongodb,Database Connectivity,我通过npm使用 npm install mongodb 其中安装了1.4.32版本的mongodb驱动程序。 底部给出的代码运行良好,但当我升级驱动程序并从节点模块中删除旧文件夹1.4.32时,更新了package.json 我得到以下错误: unknown system error : 10042. 我查了一下搜索引擎,发现这是一个windows winsock错误,不知道为什么我在最新版本中得到了这个,但在早期版本中没有 我猜这和url中的replicaSet选项有关,我不知道如何
npm install mongodb
其中安装了1.4.32版本的mongodb驱动程序。
底部给出的代码运行良好,但当我升级驱动程序并从节点模块中删除旧文件夹1.4.32时,更新了package.json
我得到以下错误:
unknown system error : 10042.
我查了一下搜索引擎,发现这是一个windows winsock错误,不知道为什么我在最新版本中得到了这个,但在早期版本中没有
我猜这和url中的replicaSet选项有关,我不知道如何设置,我是说我试过了
mongodb://localhost/test?replicaSet=rs0-1
但这就是配置副本集所需的全部内容,我们如何对副本集使用null
下面是我在nodeJS中使用的连接代码,它适用于mongodb本机驱动程序的1.4.*版本,但不适用于mongodb本机驱动程序的2.0.18版本
var express = require('../Express2/node_modules/express');
var app = express(); // instantiate the express object thru its constructor
var path = require('path');
var assert = require('assert');
var mongodb = require('mongodb'); // 2.0.18
// use /public directory for serving web pages first
app.use(express.static(path.join(__dirname , '/public'))); // add current directory
// when a request for /insert is received
app.get("/insert",function(req,resp){
// Create a mongo client
var mongoClient = mongodb.MongoClient;
// configure url to connect to
var url = 'mongodb://localhost:27017/test';
//mongodb://user:pass@ipaddr:port/dbname
// try to connect and get db handle
mongoClient.connect(url,function(err,db){
if(err){
console.log(err.toString()); // Error thrown here..
}
else{
console.log('successfully connected to mongod server');
var collectionStudent = db.collection('student');
// accepts obj and callback.
collectionStudent.insert(
{name:'Andrew',courses:[{subject:'RDBMS',fee:15000}]},
function(err,result){
resp.send('Result of insertion:' + JSON.stringify(result));
resp.end();
db.close();
}
);
}
});
});
// for pages not found in public directory, do this:
app.get("*",function(req,resp){
resp.sendFile(path.join(__dirname , "/public/404.html"));
});
// any other special routes like /result etc appear below this line
//..
//..
app.listen(3000);
我认为错误没有被粘贴进去。您可以在错误消息中编辑吗?谢谢,如果您仍然面临此问题,请编辑并添加错误消息-这是由于使用Win XP的mongodb版本造成的。请参考-