javascript - 当未处理的 promise 拒绝错误时,nodejs 不断加载

标签 javascript node.js

我是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/

相关文章:

javascript - jQuery对象内部数组的访问元素

node.js - Mongoose 直接填充创建子文档

javascript - 如何使用多个 npm 身份验证 token

javascript - 如果在内部单击并在外部释放鼠标,模态将关闭

javascript - 为什么转换不适用于第一次点击事件?

javascript - 如何根据所选单选按钮计算总价

node.js - 尽管设置了执行权限,OpenShift Node.js 应用程序的操作 Hook 仍不执行

javascript - 如果没有计时器,fitBounds 就无法工作

node.js - 在 sequelize 中更新模型和关联

javascript - 如何使用tcp套接字将图像从[python客户端]发送到[node.js服务器]?