2013-04-18 49 views
0

我正在嘗試使用函數保存javascript對象,但面臨錯誤。下面是代碼:在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檢索時不執行?

在此先感謝。

+0

我試過這個[link](http://stackoverflow.com/questions/10211076/how-can-i-save-a-stored-javascript-into-mongodb-from-node-js),但didn 't幫助 – codejammer

+0

我只是試圖在mongodb外殼運行它,它的工作.. – lopisan

+0

@lopisan是的,這是在mongo外殼工作,但不是我試圖執行它在node.js和它不工作 – codejammer

回答

1

我還沒有解決與運行功能的問題,但我注意到在代碼中的錯誤,getObject應該像

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

您可以提取功能字符串,也許使用eval來如果你真的需要它,運行它?我不知道(我沒有找到)更好的答案。

+0

使用'eval'實際上解決了這個問題。非常感謝@Lopisan – codejammer

相關問題