【发布时间】:2017-09-09 16:02:00
【问题描述】:
我是 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 搜索时,它运行良好,但是当我尝试输入未退出控制台日志“UnhandledPromiseRejectionWarning:未处理的承诺拒绝”的 ID 时,它会继续加载并且不会返回错误或其他内容
【问题讨论】:
-
只需
try-catch代码,以便明确异常处理。 -
gettingSingleBoard.catch(errorHandler);你为什么不这样做? -
当使用
await时,你必须用try/catch包围它以捕获被拒绝的承诺,或者gettingSingleBoard()的调用者必须捕获被拒绝的承诺并在那里处理错误。您已经完全“避免”了适当的错误处理,因此当出现错误时,您不应该对它的行为不符合预期感到惊讶。
标签: javascript node.js