使用 Node.js 在 Mongodb 中存储 JS 函数时出现问题

2024-03-22

我有一个简单的 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(使用前将#替换为@)

使用 Node.js 在 Mongodb 中存储 JS 函数时出现问题 的相关文章

  • 在 Kubernetes 中连接前端和后端

    我的前端设置为 this http post
  • 尽管我正在更改状态,但 React ui 没有更新

    import React useState from react const App gt const anecdotes If it hurts do it more often Adding manpower to a late sof
  • 我如何制作 spring websocket + node.js 客户端

    我怎样才能在node js中创建一个websocket stomp客户端 WebSocketStompClient 就像我在java中用这行代码做的那样 WebSocketStompClient stompClient new WebSoc
  • console.log 是如何工作的?

    第一个例子 在以下示例中 http jsfiddle net maniator ScTAW 4 http jsfiddle net maniator ScTAW 4 我有这个js var storage function var store
  • 如何在 mongo shell 查询中仅投影嵌套数组的匹配字段

    我对 mongodb 相当陌生 我希望这是一个简单的问题 我有一个嵌套架构 其中有一个数组字段 其中该数组的每个项目都是一个本身具有数组字段的对象 例如 gt db mytest insert name a top x 1 y 2 nest
  • 为什么 Number.isNaN() 对字符串返回 false?

    据我的理解NaN代表Not A Number Strings不是绝对的Numbers因此我希望下面的代码返回true对于字符串 然而 事实并非如此 console log Number isNaN Stack Overflow 有人可以澄清
  • 如何查明在 Chrome 控制台中按下按钮时会调用哪些函数?

    我正在尝试自学 Google Closure javascript 库 我正在检查 TreeControl UI 小部件 如何使用Chrome控制台分析当我点击下面演示中的 剪切 按钮时运行了哪些功能 例如 我可以为此设置一个断点吗 我尝试
  • d3 序数尺度的映射

    我正在使用 D3 的序数比例将数字映射到颜色 我用过这个 color d3 scale ordinal range 1f77b4 ff7f0e 2ca02c d62728 9467bd 8c564b e377c2 domain 0 6 co
  • AngularJS 与(Angular JS + jQuery)

    我有一个关于仅使用 AngularJS 和纯 JavaScript 以及使用 AngularJS 和 jQuery 时的性能问题 ex app directive fitHeight function window return restr
  • 需要将焦点放在react中的div上

    我有一个之前用 H1 标签包裹的文本 页面加载后 我需要专注于该文本 为了方便起见 我将它包装在 div 中 render const translate billing primaryContactSelection true this
  • 如何实现 chromecast 对 html5 播放器的支持

    我使用js和html5设计了一个具有一些自定义功能的html5播放器 现在我需要在html5播放器上添加chromecast选项 例如https raw githubusercontent com kim company videojs c
  • 在成功回调之前修改 JSONP 结果

    我想从外部服务加载一些 JSON 数据 然而 它提供 foo bar useful 而我真正关心的是 有用 的部分 我需要将那部分传递给success打回来 我正在尝试使用Deferred一次从多个数据源加载 类似this https st
  • 掩码输入数字 - 百分比

    如何通过 jQuery 创建具有百分比的数字掩码输入 我是否让输入仅接受三个数字 并在用户完成输入时在数字后添加百分号 keyup 我不使用插件 例子 1 Or 30 Or 99 Or 100 Or 200
  • 如何使 CSS 动画/过渡以固定速度而不是固定持续时间播放? [复制]

    这个问题在这里已经有答案了 我有一个 CSS 动画 可以使元素沿直线移动未定义的距离 据我所知 动画具有固定的持续时间 因此无论元素必须移动多远 动画始终需要相同的时间来运行 我该如何制作才能使动画没有固定的duration 但有固定的运动
  • Twitter 引导选项卡和 JavaScript 事件

    我正在一个项目中使用 twitter bootstrap 特别是它的选项卡功能 http twitter github com bootstrap javascript html tabs http twitter github com b
  • 为什么 Node.js 0.12.0 版本中的 V8 需要 SSE2 CPU 指令?

    尝试将 Node js 从 0 10 x 升级到 0 12 0 首先注意到的是 我收到一条错误消息 指出我的 CPU 不支持 SSE2 指令 实际上并不支持 尝试从源代码编译 Node js 但由于同样的原因失败了 在deps v8 src
  • 如何创建浏览器插件?

    我必须创建一个插件 当用户将鼠标悬停在某些术语上时 该插件必须显示信息 谁能告诉我如何做的方向 我对创建插件没有太多想法 我知道我想要做的事情可以通过java脚本来完成 但是java脚本文件可以作为浏览器插件安装吗 任何对此的想法将不胜感激
  • 如何使用 jquery 生成并附加随机字符串

    一般性 我想使用 jQuery 或 javascript 将随机字符串附加到元素的属性 规格 我需要引用 CDN 上的 CSS 文件 不幸的是 每次更新该 CSS 文件时 CDN 都会更改该文件的 URL 所以我不能简单地引用静态 URL
  • 如何从 vue 组件调用 App.vue 中的方法

    我有一个 vue 组件和一个 vue 元素声明 如下所示 Vue component todo item template li This is a todo li methods test function I am getting an
  • 获取css规则、chrome扩展

    我正在开发 Chrome 扩展程序 它需要访问document styleSheets cssRules 它在某些网站上运行良好 例如w3school 但其他人则不然 比如堆栈溢出 我收到错误 Failed to read the cssR

随机推荐

  • PGAdmin 显示 Heroku 的数据库量过多

    我正在学习一些后端的东西 我在本地创建了一个测试数据库并填充了一些数据 然后使用以下命令将数据库转储到 SQL 文件 pg dump U USERNAME DATABASE no owner no acl f backup sql 最后将其
  • 在文件搜索中排除 Eclipse/Aptana 中查找的文件类型

    有没有办法在 Aptana 或 Eclipse 文件搜索中排除图像类型 我想搜索所有非图像文件 而不是指定我要搜索的所有文件类型 尝试添加一个 在您不想匹配的模式前面标记 put cgi pm sql 在文件名模式部分中 我正在使用 Ecl
  • 为什么接受数组的 C++ 模板并不比根据 GCC 5.3 和 Clang 4.0 接受指针的模板更专业?

    为什么接下来的两个模板声明不明确 因此两者都不比另一个更专业 我知道这个问题在 Stack Overflow 上已经被多次提出 但通常人们会回答如何解决歧义 而不是回答为什么会发生这种情况 I template
  • 在远程主机中:无法与主机 smtp.gmail.com 建立连接 [连接超时 #110]

    部署后 当我尝试发送邮件时出现以下错误 500 500内部服务器错误 Swift TransportException 无法与主机 smtp gmail com 建立连接 连接超时 110 堆栈跟踪 at in SF ROOT DIR li
  • Android 模拟器 - Wifi 错误

    我正在使用 Android SDK 模拟器广告尝试连接到网络 我无法在设置 gt 无线和网络中执行此操作 在我需要打开 WiFi 的地方 我收到 错误 怎么解决呢 Gorov 关闭模拟器 关闭以太网 火线和任何其他网络接口 他们全部 我的意
  • 在同一程序中调用 srand() 两次[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 为什么当我在两个截然不同的点调用 srand 时会导致数字不是随机的 一旦我删除其中一个 它就会恢复正常 这取决于你如何称呼它 的目的sr
  • 在 JavaScript 中,如果我分配给一个具有 getter 但没有 setter 的对象属性,会发生什么情况?

    在下面的代码中 都使用了console log o x print 1 任务会发生什么情况o x 2 就这样被忽略了吗 var o get x return 1 console log o x 1 o x 2 console log o x
  • Java:在后台更新有大量行的 JTable

    我正在编写一个简单的 Java Swing 实用程序 它将从 MQ JMS 服务器读取消息并将它们显示在 JTable 中 private void getMessages try if null Queue Queue close Clo
  • 如何隐藏 emacs 创建的备份文件?

    我在使用 vi 很长时间后才开始使用 emacs 让我烦恼的一件事是 每当我修改文件 保存它并退出 emacs 时 我都会看到在同一目录中创建一个名为filename 如果我编辑的文件是filename 有什么办法可以摆脱这个吗 或者隐藏这
  • 将预测与 svyglm 结合使用

    我发现了一些奇怪的行为predict和svyglm对象从survey包裹 如果你的新数据在predict具有一个级别的因子 字符会输出错误 Error in contrasts lt tmp value contr funs 1 isOF
  • 如何使用 Ruby MiniTest::Spec 和 Rails 进行 API 集成测试?

    我正在构建一个包含 Rails API 的应用程序 并希望使用 Ruby MiniTest Spec 进行测试 有什么好的设置方法吗 例如 良好的目录组织 包含文件的良好方式等 我正在使用 Rails 3 In Action 一书中的指南
  • 在 Windows 上使用 Emacs 编译 C++ 程序

    我已经使用 Emacs 进行基本文本编辑有一段时间了 但从今天开始 我尝试使用它进行 C 编译 在过去的几个小时里 我一直在寻找如何解决这个问题 但我在他们的技术中不断遇到障碍 我认为其中一些与教程过时有关 基本上 我想做的就是能够通过 M
  • FCM/GCM JSON 有效负载 - 如何指定大图标?

    我正在使用 firebase 端点发送推送通知 它正在成功运行 我正在使用邮递员将请求发送到 FCM 我的问题是我不明白如何发送大图标 FCM 有两种可以发送的有效负载 数据有效负载和通知有效负载 See here https fireba
  • Web 控制浏览器后退按钮

    我正在使用导航 2 和setUrlStrategy PathUrlStrategy 我添加了WillPopScope但是onWillPop单击浏览器的后退按钮时不会调用 Widget build context return WillPop
  • 了解 LISP 中的绑定变量和自由变量

    我正在阅读SICP 又出现了绑定变量和自由变量的话题 然而 我对此感到困惑 术语 绑定变量 仅适用于形式参数变量吗 此外 文本还指出过程定义 绑定 其形式参数 这让我感到困惑 因为有些人说我们将值 绑定 到变量 显然 当我们谈论不同类型的变
  • Gulp 复制空目录

    In my gulp构建我已经创建了一个运行的任务after所有的编译 丑化和缩小都已经发生 此任务只是复制所有内容src进入dest早期任务尚未触及 处理的目录 我遇到的一个小问题是 这会导致目录中出现空目录dest目录 有没有办法告诉g
  • [UWP]调整BitmapImage的大小、压缩并获取base64字符串

    这是我的第一个主题 我正在 UWP 中重写在 Silverlight 8 WP8 中开发的应用程序 我在从 BitmapImage 获取 Base64 编码字符串时遇到问题 我工作了很多天都找不到解决方案 总之我需要 从设备图库中选择图像
  • H2 控制台和 Spring Security - PermitAll() 不起作用

    我正在创建rest api并实现Spring Security 一切正常 但我希望 目前 当我仍在开发时 能够让任何未经授权的人打开localhost 8080 console 我的代码 Override protected void co
  • docker-desktop 使用 12 GB RAM 来运行一个具有 24 MB RAM 的容器?

    在我看来就像 WSL2 容器docker desktop使用 12 GB RAM 来运行一个具有 24 MB RAM 的容器 是什么赋予了 详情如下 另外 当我将所有进程中的所有驻留 RAM VSZ 加起来时docker desktop 总
  • 使用 Node.js 在 Mongodb 中存储 JS 函数时出现问题

    我有一个简单的 JS 类 var User function id this id id this sayHello function return hello 然后 我使用默认的 Node js 驱动程序将其存储在 MongoDB 中 u