Express/Mongoose中使用GET端点而不使用POST端点的CastError



我正在测试一个端点,该端点使用mongoose查询从id获取用户数据。我的代码的工作方式与POST端点类似,但如果端点更改为GET,则会返回一个奇怪的错误。

router.route("/test").get(async (req, res) => { // works for POST route and request, not GET
const ids = req.body.ids;
users = [];
for (let i = 0; i < ids.length; i++) {
const userData = await User.findById(ids[i]);
users.push(userData);
}
res.json(users);
});

使用上面的代码,我得到了以下错误:;错误:CastError:值"转换为ObjectId失败;测试";在路径"_id";对于模型";组">

将请求类型替换为POST,我得到了所需的结果。当代码的其余部分都相同时,为什么会出现这种情况?

不要让端点有点类似
示例:

product/:id
and similar with
item/:id

使您的端点独一无二

product/:id_product
item/:id_item

核心是,检查您的端点并使其独一无二
上面的例子是我遇到的一个例子

最新更新