javascript - 使用 Node.js 在 Mongodb 中存储 JS 函数的问题

标签 javascript node.js mongodb

我有一个简单的 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 函数和属性。如果不是这种情况,您能推荐我如何解决这个问题吗?

谢谢!

最佳答案

Mongo 不能存储函数(代码),只能存储数据。将获取的原始数据传递给构造函数,或者考虑像 mongoose 这样的 ODM。

有一组非常具体且有限的条件,您可以在其中以字符串形式发送 mongo 函数代码并在服务器上对其进行评估。这些记录在 the MongoDB manual 中。 .但是,在 mongo 中运行的代码的目的是支持复杂的数据查询操作,而不是对应用程序逻辑进行建模,这正是这个问题所要问的。应用程序逻辑位于您的 node.js 模块 .js 文件中。数据进入数据库。

关于javascript - 使用 Node.js 在 Mongodb 中存储 JS 函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15423107/

相关文章:

javascript - 流和事件循环 - 数据处理程序是否总是在下一个时钟周期触发?

javascript - 如何从 HTTP 响应 header 字符串中提取参数?

javascript - 下面的 javascript 表达式是什么意思

node.js - 使用 package.json 停止脚本终止 Node 进程

node.js - Edge.node 字段类型必须是 Output Type 但得到 : undefined

node.js - 在 MongoDB 中,我正在使用大型查询,我将如何创建复合索引或单个索引,所以我的响应时间增加

mongodb - 排序多个条件MongoDB

mongodb - 如何使用MongoVUE工具在mongodb中创建数据库

javascript - Angular 包含和访问 Controller 范围

javascript - 即时将字节数组转换为整数数组