当前位置: 首页 > 知识库问答 >
问题:

通过_id访问Node.jsMongoDB MLAB数据库选择文档

姜煌
2023-03-14

我正在尝试从承载在MLab上的MongoDB访问该文档,但在访问带有_id的文档时出现以下错误。以下是供您参考的代码

var express = require('express');
var router = express.Router();
var mongojs = require('mongojs');
var db = mongojs('mongodb://<<UserName>>:<<Password>>@aadds157248.mlab.com:57248/<<DatabaseName>>',['temp1']);
router.get('/todo/:id',function(req,res,next){
var ObjectID = mongojs.ObjectID;
var o_id = new ObjectID (req.params.id);
db.temp1.findOne({
   '_id': o_id
},
function(err,temp1){
    if (err){
        res.send(err);
    }
    else {
        res.json(temp1);
    }
})
});

但在尝试访问URL时出现以下错误:http://localhost:3000/api/v1/todo/5870f7f1f36d2872530d26f1

TypeError:hex不是函数处的函数。从(本机)at函数。from(本机)位于C:\Kamlesh\Angular2\meantodos\node\u modules\bson\lib\bson\ObjectID.js:52:32的新对象ID(C:\Kamlesh\Angular2\meantodos\routes\todos)。js:23:14在第二层。在路由的下一个(C:\Kamlesh\Angular2\meantodos\node\u modules\express\lib\router\layer.js:95:5)处(C:\Kamlesh\Angular2\meantodos\node\u modules\express\lib\router\route.js:131:13)处理[作为句柄\u请求]。层上的调度(C:\Kamlesh\Angular2\meantodos\node\u modules\express\lib\router\route.js:112:3)。句柄[作为句柄请求](C:\Kamlesh\Angular2\meantodos\node\u modules\express\lib\router\layer.js:95:5)位于C:\Kamlesh\Angular2\meantodos\node\u modules\express\lib\router\index。js:277:22在param(C:\Kamlesh\Angular2\meantodos\node\u modules\express\lib\router\index.js:349:14)

共有1个答案

吴嘉禧
2023-03-14

今天我遇到了一个与mongodb核心更新相关的类似错误。

我通过将mongodb core强制为以前的版本修复了它:

npm install --save mongodb-core@1.3.18

无论如何,首先要检查的是req.params.id有一个有效的十六进制25字符字符串。

 类似资料:
  • 问题内容: 我正在尝试通过ID选择文档 我试过了: 还尝试了: 这给我一个错误500 … 这些都不起作用。如何通过_id选择? 问题答案:

  • 问题内容: 我是PHP和SQL领域的一名新开发人员。到目前为止,我只完成了Objective- C编程。但是,我的一个项目要求我拥有一个在线数据库,我需要从我的应用程序访问该数据库。我打算使用该框架来远程访问数据库,如下所示: 但这是行不通的,因为我联系了我的托管服务提供商,并且他们已经对其进行了设置,因此我无法从外部主机访问我的数据库(出于安全性考虑)。因此,我将不得不寻找替代方案。我唯一想到的

  • WeX5.Baas服务详解 视频地址:http://pan.baidu.com/s/1jHB5XMA baas.net 版:Bass for .NET 1      概述 本案例实现了对takeout_order(外卖订单表)表的分页查询、关键字检索和修改保存的能力,数据库表结构参见WeX5自带的mysql数据库。 案例代码分为服务端和客户端两部分:     服务端包含一个servlet(com.

  • 我使用以下列表从控制器填充了JSP中的下拉列表:“” 例如,我使用下拉菜单将5保存为db中thirdPartyOccupationId的值。当我重新加载页面时,值5不是选中的值。 同一段代码正在处理不同的字段,我不知道我错过了什么。 模型类: ReportClass.java 控制器.java 感谢任何指点。

  • 问题内容: 是否有一种简单而直接的方法来根据元素的属性选择元素?例如,选择具有命名的数据属性的所有锚,其具有的价值。 我有点不愿意使用或其他属性来存储此类信息,但是我发现根据存储在其中的数据来选择元素要困难得多。 问题答案: $(‘*[data-customerID=”22”]’); 您应该可以省略,但是如果我没有记错的话,这取决于您使用的是哪个jQuery版本,这可能会导致错误的结果。 请注意,

  • 命令用于选择数据库,如果想在一个数据库上工作,比如:创建表,查询表,更新,创建存储过程等等,那么首先需要选择一个目标数据库。 示例 假设在MariaDB数据库服务器中,存在有多个数据库,我们必须选择一个特定的数据库。 例如,在下图中显示了多个数据库: 这里我们将使用数据库来创建表等。所以需要使用以下命令。 在执行上面查询语句后,就已经选择数据库。之后就可以在里面创建表等数据对象了。执行上面查询语句