我正在尝试在本地运行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 = ========================================================================================
以下是我的变数:
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();
相同的脚本在我的实时服务器上运行正常。它只会在我在本地运行时抱怨。
我发现在github上讨论了同样的问题,但没有找到解决方案。 https://github.com/kissjs/node-mongoskin/issues/77
任何人都知道会导致这个问题的原因吗?
提前致谢:)
答案 0 :(得分:22)
以下适用于我使用1.1.11 mongo驱动程序:
var db = new Db(Config.dbName, new Server("127.0.0.1", 27017, {}), {safe: true});
如果没有{safe: true}
参数,我会收到您在问题中显示的相同警告。
这个警告是司机的最新补充;您可能在服务器上使用旧版本的驱动程序,这就是为什么您没有在那里看到警告的原因。
答案 1 :(得分:9)
我通过将strict
模式设置为false来实现它。
var db = new Db(config.dbName, new Server("127.0.0.1", 27017, {}), {safe: false, strict: false});
答案 2 :(得分:0)
这对我有用!
var db = new Db((new DbServer('127.0.0.1', 27017), {w:-2,journal:false,fsync:false,safe: false})