Node.js mongodb设置默认安全变量

Far*_*mad 13 mongodb node.js

我试图在本地运行Node.js脚本,它给我这个错误消息:

========================================================================================
=  Please ensure that you set the default safe variable to one of the                  =
=   allowed values of [true | false | {j:true} | {w:n, wtimeout:n} | {fsync:true}]     =
=   the default value is false which means the driver receives does not                =
=   return the information of the success/error of the insert/update/remove            =
=                                                                                      =
=   ex: new Db(new Server('localhost', 27017), {safe:false})                           =
=                                                                                      =
=   http://www.mongodb.org/display/DOCS/getLastError+Command                           =
=                                                                                      =
=  The default of false will change to true in the near future                         =
=                                                                                      =
=  This message will disappear when the default safe is set on the driver Db           =
========================================================================================
Run Code Online (Sandbox Code Playgroud)

这是我的变量:

var express = require('express');

var mongodb = require('mongodb');
var GridStore = require('mongodb').GridStore;
var Db = require('mongodb').Db;
var Server = require('mongodb').Server;
var db = new Db(Config.dbName, new Server("127.0.0.1", 27017, {}), {});    

var HttpGet = require('./httpGet').HttpGet;
var URL = require('url');

var dbClient = null; // this is initialized when db is opened
var app = module.exports = express();
Run Code Online (Sandbox Code Playgroud)

在我的实时服务器上运行相同的脚本.它只会在我在本地运行时抱怨.

我发现在github上讨论了同样的问题,但没有找到解决方案. https://github.com/kissjs/node-mongoskin/issues/77

谁知道什么可能导致这个问题?

提前致谢 :)

Joh*_*yHK 22

以下适用于我使用1.1.11 mongo驱动程序:

var db = new Db(Config.dbName, new Server("127.0.0.1", 27017, {}), {safe: true});
Run Code Online (Sandbox Code Playgroud)

如果没有{safe: true}参数,我会收到您在问题中显示的相同警告.

这个警告是司机的最新补充; 你可能在你的服务器上使用旧版本的驱动程序,这就是你没有在那里看到警告的原因.


Far*_*mad 9

我通过将strict模式设置为false 来使其工作.

var db = new Db(config.dbName, new Server("127.0.0.1", 27017, {}), {safe: false, strict: false}); 
Run Code Online (Sandbox Code Playgroud)