我有一个简单的 JS 类:
var User = function(id){
this._id = id;
this.sayHello = function (){
return "hello";
}
}
然后,我使用默认的 Node.js 驱动程序将其存储在 MongoDB 中:
users.insert(new User(1));
最后,我检索用户,并尝试执行该函数:
users.findOne({_id:1}, function(err, item) {
console.log("Say hello: " + item.sayHello());
});
我收到以下错误,这确实令人困惑:
throw err;
^
TypeError: Object #<Object> has no method 'sayHello'
我对这个完全迷失了。我的理解是 MongoDB 按原样存储 JS 函数和属性。如果不是这种情况,您能建议我如何解决这个问题吗?
Thanks!
Mongo不能存储函数(代码),只能存储数据。获取返回的原始数据并将其传递给构造函数,或者考虑像 mongoose 这样的 ODM。
有一组非常具体且有限的条件,您可以在其中以字符串形式发送 mongo 函数代码并在服务器上对其进行评估。这些记录在MongoDB 手册 http://docs.mongodb.org/manual/applications/server-side-javascript/。然而,在 mongo 内部运行的代码的目的是支持复杂的数据查询操作,而不是对应用程序逻辑进行建模,这正是这个问题所要问的。应用程序逻辑位于您的 Node.js 模块中.js
文件。数据进入数据库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)