13

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();

同じスクリプトがライブサーバーで正常に実行されます。ローカルで実行した場合にのみcomplanesします。

これと同じ問題がgithubで議論されているのを見つけましたが、解決策は見つかりませんでした。 https://github.com/kissjs/node-mongoskin/issues/77

何がこの問題を引き起こす可能性があるか知っている人はいますか?

前もって感謝します :)

4

3 に答える 3

22

1.1.11 mongoドライバーを使用すると、次のように動作します。

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

パラメータがない{safe: true}と、質問に表示されているのと同じ警告が表示されます。

この警告は、ドライバーに最近追加されたものです。サーバーで古いバージョンのドライバーを使用している可能性があります。そのため、サーバーに警告が表示されません。

于 2012-10-11T19:32:47.680 に答える
9

strictモードをfalseに設定することで動作させました。

var db = new Db(config.dbName, new Server("127.0.0.1", 27017, {}), {safe: false, strict: false}); 
于 2012-10-12T20:23:38.143 に答える
0

これは私のために働いた!

var db = new Db((new DbServer('127.0.0.1', 27017), {w:-2,journal:false,fsync:false,safe: false})
于 2013-07-10T10:56:47.760 に答える