mongo db连接问题“无法调用未定义的方法'更新'”

时间:2016-03-13 21:48:05

标签: node.js mongodb iot

我已在此代码中设置了mongoldb连接

event.preventDefault();

稍后在代码中,我将文档更新到以间隔重复的函数内的集合

client.connect(mongodbURL,function (err,db){
   if(err) throw err;
   collection=db.collection("accel1");
 });

问题是它给出了错误

setInterval(create_doc,db_doc_interval);

 function create_doc(){
 console.log("writing to db");

 collection.update( <...updates> );
 }

这让我觉得某种方式集合没有被正确定义,或者没有被正确地传递给函数。任何帮助是极大的赞赏。谢谢

如果我把建立连接部分放在第二个函数中,则BTW代码工作正常。但是这会导致每次都建立一个新的连接并且是非常耗费资源的

1 个答案:

答案 0 :(得分:0)

此错误是由collection变量未在client.connect的回调函数中分配,在create_doc函数中通过访问.update函数调用之前引起的。将setInterval函数移至client.connect(的回调中,如下所示。

client.connect(mongodbURL,function (err,db){
     if(err) throw err;
     collection=db.collection("accel1");
     setInterval(create_doc,db_doc_interval);
 });