使用mongodb中的函数保存javascript对象

时间:2013-04-18 10:54:16

标签: node.js mongodb

我正在尝试使用函数保存javascript对象,但面临错误。这是代码:

var mongo = require('mongodb');
createObject = function(){
var data = {_id:1,"name":"object", 
   "fun":new mongo.Code("function fun() {print(1)}")};
   db.collection("objects").insert(data,function(err,result){   
    console.log(err);
    console.log(result);
   });
}

getObject = function(){
 var f = db.collection("objects").findOne();
 f.fun(); 
}

错误:

    throw err;
          ^
TypeError: Object #<Object> has no method 'fun'

当我检查mongodb时,它正在保存“有趣”的功能。但是从mongo中检索时没有执行?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我没有解决运行该函数的问题,但我注意到代码中出现错误,getObject应该看起来像

getObject = function(){
 db.collection("objects").findOne(function(err, f) {
   console.log(f);
   // f.fun(); 
 });
}

您可以将函数解压缩为字符串,如果确实需要,可以使用eval来运行它吗?我不知道(我还没有找到)更好的答案。