【问题标题】:Passing a Mongo ObjectId in a URL and querying that ID with Node/Express在 URL 中传递 Mongo ObjectId 并使用 Node/Express 查询该 ID
【发布时间】:2017-01-26 18:20:26
【问题描述】:

我在传递一个 objectId 作为我的 URL 参数时遇到了很多麻烦。我知道 MongoDB 中的 ObjectId 是一个十六进制值,我需要进行一些转换,但是我使用的每种方法都会出错。

目前,我收到的错误是“传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符串。”

var mongo   = require('mongodb').MongoClient;
var ObjectID = require('mongodb').ObjectID;


 app.get('/characters/:id', function (req, res) {
   console.log(req.params.id);
   var collection = db.collection('Character');
   _id = new ObjectID(req.params.id);
 });

我传递的请求是:

address/characters/:565dffa7463e4c60b1166f43

感谢您对此的任何帮助。

【问题讨论】:

  • 注意冒号。尝试您的代码而不通过它。
  • 哇,谢谢。现在我想起来了,这完全有道理。我今晚回家后试试这个。

标签: node.js mongodb express


【解决方案1】:

请求应该是: 地址/字符/565dffa7463e4c60b1166f43

那么 req.params.id 变为 565dffa7463e4c60b1166f43。

【讨论】:

    猜你喜欢
    • 2013-07-04
    • 2016-11-13
    • 1970-01-01
    • 2014-12-21
    • 2019-08-14
    • 1970-01-01
    • 2017-07-31
    • 2017-03-21
    • 2018-04-06
    相关资源
    最近更新 更多