Как я могу сохранить сохраненный JavaScript в mongodb из node.js
Следующий кусок кода:
<code>var mongo = require('mongodb'); var db = new mongo.Db('test', new mongo.Server('127.0.0.1', 27017, {})); var callback = function (e, result) { if (e) { console.log(e); process.exit(1); } console.log(result); process.exit(0); } db.open(function (e) { if (e) callback(e); db.collection('system.js', function (e, coll) { if (e) callback(e); coll.save({ "_id" : "myFunction", "value" : "function myFunction() { return 123; }" }, function (e) { if (e) callback(e); db.eval("myFunction()", [], function (e, result) { if (e) callback(e); callback(undefined, result); }); }); }); }); </code>
выходы:
<code>[Error: eval failed: invoke failed: JS Error: TypeError: myFunction is not a function nofile_a:0] </code>
Я обнаружил, что проблема связана с кавычками ("quot;"), заключающими определение функции.
На Монго-Кли:
<code>> db.system.js.find() { "_id" : "myFunction", "value" : "function myFunction() { return 123; }" } </code>
Но после:
<code>> db.system.js.save({_id : "myFunction", value : function myFunction() { return 123; }}); </code>
а также
<code>> db.system.js.find() { "_id" : "myFunction", "value" : function cf__5__f_myFunction() { return 123; } } </code>
db.eval (& quot; myFunction () & quot;) работает!
Итак, мой вопрос: как я могу сохранить хранимую процедуру из node.js, используя драйвер node-mongodb-native?