2012-10-11 25 views
13

Estoy tratando de ejecutar un script Node.js localmente y me está dando este mensaje de error:Node.js mongodb define por defecto sea variable

======================================================================================== 
= 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   = 
======================================================================================== 

Éstos son mis variables:

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

El los mismos guiones funcionan bien en mi servidor en vivo. Solo se queja cuando lo ejecuto localmente.

me encontré con este mismo asunto objeto de debate en github pero no encontraron solución. https://github.com/kissjs/node-mongoskin/issues/77

Alguien sabe lo que podría causar este problema?

Gracias de antemano :)

Respuesta

22

las siguientes obras para mí utilizando el controlador 1.1.11 mongo:

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

sin el parámetro {safe: true} me pongo la misma advertencia que usted muestra en su pregunta.

Esta advertencia fue una adición muy reciente para el conductor; probablemente estés usando una versión anterior del controlador en tu servidor, por lo que no ves la advertencia allí.

+0

He tratado de que, cuando hago esto, me sale "Ejecución ERROR: (Mar Oct 11 2012 15:36:44 GMT-0400 (EDT)): {}". No me dice cuál es el error. –

+0

@FarhanAhmad ¿Lo ha ejecutado debajo del depurador para ver qué línea está generando ese error? – JohnnyHK

+0

Lo mismo. Es empezar a escuchar en el puerto 5858 y luego muestra "Ejecución ERROR: (Mar Oct 11 2012 15:57:08 GMT-0400 (EDT)): {}" –

9

Yo tengo que trabajar ajustando el modo strict a falso.

var db = new Db(config.dbName, new Server("127.0.0.1", 27017, {}), {safe: false, strict: false}); 
+0

Esto no funcionó para mí en la versión de desarrollo 2.4.0-rc0 – derickito

+0

No importa, funcionó. Estaba buscando en el lugar equivocado ;-) – derickito

+0

Acabo de pegar el código exacto que muestra Farhan arriba y sigo recibiendo el mensaje. Estoy usando 1.3.23 del controlador mongoDb node.js. También probé el código de KiranYNG. La advertencia no es un show stopper, pero me molesta que diga que desaparecerá si configuras las opciones de escritura, ¡pero luego no desaparecen! –

0

Esto funcionó para mí!

var db = new Db((new DbServer('127.0.0.1', 27017), {w:-2,journal:false,fsync:false,safe: false})