【发布时间】:2020-09-30 03:01:59
【问题描述】:
我正在使用 Mongoose 创建一个用户,我想使用我自己的 _id。我认为您可以使用以下代码将任何字符串转换为ObjectId:mongoose.Types.ObjectId('4fhTTRkUYNPBUSiYIhz8YHZ9wQ02')。这是其他几个 Stack Overflow 答案所建议的。但是,当我在 Node 中使用此代码时,出现以下错误:Error: Argument passed in must be a single String of 12 bytes or a string of 24 hex characters。
我做错了什么?
router.post("/create_user", (req, res) => {
const id = req.body.id;
console.log("/create_user id : ", id); // <-- logging successfully '4fhTTRkUYNPBUSiYIhz8YHZ9wQ02'
User.create({
_id: mongoose.Types.ObjectId(id), // <-- generating error
name: "Joe"
})
.then((u) => {
return res.json({ user: u });
})
.catch((err) => {
console.log("/create_user error : ", err);
return res.json({ error: err });
});
});
【问题讨论】: