2014-03-06 34 views
0

使用mongojs模塊插入MongoDB失敗了,我有兩個函數setupMongoDB和pushRequestsToMongoDB(它們做的事情是不言自明的)。 我從我的網頁上收到請求並將數據解析爲JSON。使用Node js插入到MongoDB

控制檯看起來是這樣的:

created worker: 22987 
created worker: 22989 
created worker: 22990 
created worker: 22991 
{ type: 'line',geometry: '`[email protected]_kc~BzlxZbrvdA{fw[`mw}@' } 
object 
[Error: connection closed] 

該做的代碼產生錯誤看起來是這樣的:

var mongo=require('mongojs'); 
var collections=['testData']; 
var dbURL='localhost:3000/mapData'; 
var db=mongo.connect(dbURL,collections); 

var insert=function(obj) 
{ 
db.testData.save(obj,function(err,obj){ 
     if(err || !obj) 
     { 
      console.log(err); 
     } 
     else 
     { 
     console.log('Data successfully inserted with _id '+obj['_id']); 
     } 
    }); 
}; 


exports.insert=insert; 

這是我如何使用功能:

var express=require('express'); 
var app=express(); 
var mongo=require('./mongo_try'); 
app.use(express.bodyParser()); 
app.post('/map',function(req,res){ 
    var data=req.body; 
    console.log(data); 
    console.log(typeof data); 
    mongo.insert(data); 
}); 

回答

0

我對「conn.markers.save」打算做什麼感到困惑。這是一個貓鼬電話嗎? Mongodb節點本地沒有「保存」命令。你的意思是獲取「標記」集合,然後插入數據?你不需要把它串起來。

您使用的是:https://github.com/mafintosh/mongojs

您不應該將該保存命令串起來。改變這一行:

conn.markers.save(obj,function(err,data){ 

,或者如果「目標文件」的內容已經是一個字符串,將其更改爲:我使用的是帶有npm.I的mongojs模塊不知道

conn.markers.save(JSON.parse(obj),function(err,data){ 
+0

什麼貓鼬是,其餘的假設是正確的。我想創建或獲取標記集合並插入數據。 – vamsiampolu

+0

您可能可以簡單地使用本地mongodb驅動程序而不是mongojs項目,除非它執行了您需要的操作。 https://github.com/mongodb/node-mongodb-native你會注意到,mongojs項目使用這些驅動程序。 –

+0

你認爲我在使用mongojs模塊時做錯了什麼? – vamsiampolu