0

使用 mongojs 模块插入 Mongo DB 失败,我有两个函数,setupMongoDB 和 pushRequestsToMongoDB(它们的作用是不言自明的)。我从我的网页收到一个请求并将数据解析为 JSON。

控制台如下所示:

created worker: 22987
created worker: 22989
created worker: 22990
created worker: 22991
{ type: 'line',geometry: '`tvtBat~_Wnaoi@_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);
});
4

1 回答 1

0

我对“conn.markers.save”打算做什么感到很困惑。这是猫鼬的叫声吗?Mongodb 节点本机没有“保存”命令。您的意思是获取“标记”集合,然后插入数据吗?您不需要对其进行字符串化。

你在使用这个:https ://github.com/mafintosh/mongojs吗?

您也不应该对该保存命令进行字符串化。更改此行:

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

或者如果“obj”的内容已经是一个字符串,则将其更改为:

conn.markers.save(JSON.parse(obj),function(err,data){
于 2014-03-06T16:43:50.487 回答