使用 MEAN.JS。路线:
app.route('/api/user/cards/:cardId')
.get(card.read);
app.param('cardId', card.cardByID);
卡片ID:
exports.cardByID = function (req, res, next, id) {
Card.findOne({id: id}).exec(function (err, card) {
if (err) return next(err);
if (!card) return res.status(404).send({message: 'Карты с таким ID не найдено'});
req.card = card;
next();
});
};
我曾经使用 mongoose _id 作为参数,但需要使用其他 id(8 位数字)。 如果 id 是 mongoose id 类型(例如 57ceda7ec10c15da7c53515f),它会返回 404 状态,但如果 id 只是一个数字(例如 13241234),它会返回 400 状态。 有什么问题吗?
最佳答案
正如MongoDB
所说,作为文档的主键_id
生成的默认唯一标识符
是一个ObjectId
。
And it's
12-byte binary
value which is often represented as a24 character hex string
.
只要 MongoDB
得到的字符少于 24 个字符
,它就不会接受 _id
。这就是为什么您会从 MongoDB
端收到一些错误
。
关于node.js - 发送带有 id 的 GET 请求的错误请求(ExpressJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39353568/