错误的请求发送带有id(ExpressJS)的GET请求
使用MEAN.JS. 路线:
app.route('/api/user/cards/:cardId') .get(card.read); app.param('cardId', card.cardByID);
cardByID:
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作为参数,但需要使用其他身份证(8位数字)。 如果id是mongoose idtypes(例如57ceda7ec10c15da7c53515f),它将返回404状态,但是如果id只是一个数字(例如13241234),它将返回400状态。 问题是什么?
正如MongoDB
所说,为文档生成主键_id
的default unique identifier
是一个ObjectId
。
它是
12-byte binary
值,通常表示为24 character hex string
。
而且每当MongoDB
得到less于24 characters
它不接受作为_id
。 这就是为什么你从MongoDB
端获得一些error
。