如何将存储的javascript从node.js保存到mongodb中
How can I save a stored javascript into mongodb from node.js
以下代码段:
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);
});
});
});
});
输出:
[Error: eval failed: invoke failed: JS Error: TypeError: myFunction is not a function nofile_a:0]
我发现问题与包装函数定义的引号(")有关。
在 mongo-cli 上:
> db.system.js.find()
{ "_id" : "myFunction", "value" : "function myFunction() { return 123; }" }
但之后:
> db.system.js.save({_id : "myFunction", value : function myFunction() { return 123; }});
和
> db.system.js.find()
{ "_id" : "myFunction", "value" : function cf__5__f_myFunction() {
return 123;
} }
db.eval("myFunction()"),工作!
所以,我的问题是:如何使用node-mongodb-本机驱动程序从node.js保存存储过程?
在阅读了有关驱动程序数据类型的文档后,我意识到我需要传递一个 mongo,而不是传递带有代码的字符串。代码对象:
{
"_id" : "myFunction",
"value" : new mongo.Code("function myFunction() { return 123; }")
}
相关文章:
- 如何使用 Angular JS 将数据保存在数据库中
- 使用History.js保存显示的igGrid列
- Three.js保存修改后的网格顶点r67
- 保存leaflet.js的当前视图
- AJAX将JSON数组保存到多个JS变量中
- 如何使用heatmap.js保存canvas标记生成的图像文件
- d3.js保存状态
- 将表单对象保存到具有主干.js的模型
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载
- 如何抓取本地保存的 html 的“隐藏”JS
- 如何使用office.js检查未保存文件的具体文件扩展名
- 如何保存和设置窗口.pageYOffset with shadowbox.js.
- 如何在ruby on rails中保存和发布Webgl中的JS代码结果
- 有没有一种方法可以保存单个图像,并防止用户使用dropzone.js放置多个图像
- 如何在PHP站点上保存JS变量值
- GRAILS保存JS文件
- 函数保存JS对象不工作
- 保存JS对象到Knockout Array
- 如何设置CodeKit 2在保存JS文件时自动更新HTML页面?
- 用于保存JS对象字面量文件的约定