我正在测试一个端点,该端点使用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
核心是,检查您的端点并使其独一无二
上面的例子是我遇到的一个例子