我是nodeJS新手,我正在尝试根据请求参数选择一个单板
router.get('/board/:id', gettingSingleBoard);
这就是获取单板功能
gettingSingleBoard = async function (req, res) {
const id = req.params.id;
const board = await Board.findOne({ _id: id });
res.json(board);
};
当我使用有效的 ID 进行搜索时,它运行良好,但是当我尝试输入未退出的 ID 时,控制台会记录“UnhandledPromiseRejectionWarning:未处理的 promise 拒绝”,并且它会继续加载,并且不会返回错误或其他内容
最佳答案
您需要使用 try/catch 包装异步代码。请参阅示例:
gettingSingleBoard = async function (req, res) {
const id = req.params.id;
try {
const board = await Board.findOne({ _id: id });
res.json(board);
} catch(e) {
res.status(404).send({type: "NotFoundException"})
}
};
关于javascript - 当未处理的 promise 拒绝错误时,nodejs 不断加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46132496/