我是nodeJS的新手我试图根据请求选择一个单板Params
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:未处理的承诺拒绝"它会继续加载而不会返回错误或其他东西
答案 0 :(得分:4)
您需要使用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"})
}
};
答案 1 :(得分:0)
另一种可能性是将错误捕获到错误对象:
res.json(
await Board
.findOne({ _id: id })
.catch(e=>({error:500,message:e}))
);