2012-10-11 39 views
13

Tôi cố gắng để chạy một kịch bản Node.js tại địa phương và nó đem lại cho tôi thông báo lỗi này:Node.js MongoDB thiết lập mặc định an toàn biến

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

Dưới đây là các biến của tôi:

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

Các cùng một tập lệnh chạy tốt trên máy chủ trực tiếp của tôi. Nó chỉ complanes khi tôi chạy nó tại địa phương.

Tôi thấy vấn đề tương tự này đang được thảo luận về github nhưng không tìm thấy giải pháp nào. https://github.com/kissjs/node-mongoskin/issues/77

Bất kỳ ai biết điều gì có thể gây ra sự cố này?

Cảm ơn trước :)

Trả lời

22

Các công trình sau đây cho tôi bằng cách sử dụng trình điều khiển 1.1.11 Mongo:

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

Nếu không có tham số {safe: true} tôi làm được những cảnh báo tương tự như bạn thấy trong câu hỏi của bạn.

Cảnh báo này là sự bổ sung rất gần đây cho người lái xe; bạn có thể đang sử dụng một phiên bản cũ của trình điều khiển trên máy chủ của bạn, đó là lý do tại sao bạn không thấy cảnh báo ở đó.

+0

Tôi đã cố gắng đó, Khi tôi làm điều này, tôi nhận được "Chạy LỖI: (Thu 11 tháng 10 năm 2012 15:36:44 GMT-0400 (EDT)): {}". Nó không cho tôi biết lỗi là gì. –

+0

@FarhanAhmad Bạn có chạy nó dưới trình gỡ lỗi để xem dòng nào đang tạo ra lỗi đó không? – JohnnyHK

+0

Điều tương tự. Nó bắt đầu lắng nghe trên cổng 5858 và sau đó cho thấy "Chạy LRI: (Thu Oct 11 2012 15:57:08 GMT-0400 (EDT)): {}" –

9

Tôi đã làm cho thiết bị hoạt động bằng cách đặt chế độ strict thành sai.

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

Điều này không làm việc cho tôi trên phiên bản phát triển 2.4.0-rc0 – derickito

+0

Không sao, nó đã hoạt động. Tôi đang tìm kiếm địa điểm sai ;-) – derickito

+0

Tôi chỉ dán mã chính xác được hiển thị bởi Farhan ở trên và tôi vẫn nhận được thông báo. Tôi đang sử dụng 1.3.23 của trình điều khiển node.js mongoDb. Cũng thử mã KiranYNG. Các cảnh báo không phải là một stopper hiển thị nhưng nó làm phiền tôi rằng nó nói nó sẽ biến mất nếu bạn thiết lập các tùy chọn viết quan tâm nhưng sau đó nó không biến mất! –

0

Điều này phù hợp với tôi!

var db = new Db((new DbServer('127.0.0.1', 27017), {w:-2,journal:false,fsync:false,safe: false}) 
Các vấn đề liên quan