【发布时间】:2020-09-22 20:13:02
【问题描述】:
我在node和express中有这个功能
router.post('/', async (req, res) => {
const playlist = new Playlist({
song: req.body.song,
artist: req.body.artist
})
try {
const newPlaylist = await playlist.save()
res.status(201).json(newPlaylist)
} catch (err) {
res.status(400).json({ message: err.message })
}
})
但是,我收到了这个错误
(node:23242) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'song' of undefined
【问题讨论】:
-
我认为您必须向我们展示
playlist.save()和Playlist()构造函数的代码,因为您展示的代码中没有任何明显的地方会导致该错误。 -
如果不看更多代码很难知道,但是 new Playlist() 是底层的 Promise,或者 playlist.save() 正在做一些时髦的事情。我建议添加控制台日志并查看这两件事中的哪一件实际上失败了
-
.save 是一个猫鼬方法@jfriend00
-
是的,但是在
.save()过程中,您的某处不存在一些模型代码吗?因为您在此处显示的代码本身不会导致UnhandledPromiseRejectionWarning。因此,必须有 ELSE 做出贡献。new Playlist()也有可能正在抛出,并且被报告为UnhandledPromiseRejectionWarning,因为它在async函数中。 -
这个错误没有给你更多的细节,比如错误信息和错误所在的行号?
标签: javascript node.js express async-await es6-promise