我不明白为什么 Mongoose 不能完成这个模型。
相同的连接与其他控制器功能配合良好
vscode
postman的
我试图创建一个新的文档,但我的代码只是卡住了,我不能得到任何错误,以找出什么是错的
const createNote = async (req, res) => {
try {
const { user, title, text } = req.body
if (!user || !title || !text) {
return res.status(400).json({ text: 'all fileds are required' })
}
console.log('got here')
const userId = new mongoose.Types.ObjectId(user)
const newNote = await Note.create({ user: userId, title, text })
console.log("got here 1")
if (!newNote) {
return res.status(400).json({ message: 'note not created' })
}
res.status(200).json({ message: `new note created for ${user} ` })
}
catch (e) {
console.error("error handling note creation: ", e);
res.status(500).send()
}
}
个字符
2条答案
按热度按时间z9zf31ra1#
所以我看不到Note的模式,但我假设
user
字段应该具有Ref<User>
类型,也就是说引用了您在其他地方定义的User
模型。但在您提供的代码示例中,似乎您给了它一个mongoID字符串。如果你添加了下面这行代码,脚本应该会开始工作。这会将你的用户变量从mongo ObjectID的字符串表示转换为真正的mongo ObjectID。:
user = new mongoose.Types.ObjectId(user);
个然而,我认为你的主要问题实际上只是你没有得到一个错误打印出来。我的猜测是
asyncHandler
使错误消失了。如果你把你的函数体放在一个try catch块中,在catch中有一个console.error,你应该能够在将来看到这个错误。字符串
这主要是猜测,因为我没有太多的上下文。如果这不能解决问题,请发布
Note
模型的模式以及您得到的任何错误提示。rbpvctlc2#
我建议处理Promise,这样你就可以试着弄清楚到底发生了什么。