自调用异步函数中的哨兵错误跟踪

时间:2021-07-13 21:41:21

标签: node.js express sentry

我对哨兵很陌生,我正在尝试使用哨兵研究错误跟踪。以下代码片段 我故意设置了一个无效的 mongodb uri 并试图用哨兵捕捉错误。但是 Sentry.cptureException 没有发送错误信息。但是,如果我设置了正确的 mongo uri 并使用调试路由进行测试,它就会捕获错误并将错误发送到仪表板。我做错了什么?

Sentry.init({ dsn: process.env.SENTRY_DSN });

(async (): Promise<void> => {
  try {

    const app = express();
    app.use(Sentry.Handlers.requestHandler() as express.RequestHandler);

    await mongodb.connectAsync(process.env.MONGO_DEV_DB as string);

    apolloServer.applyMiddleware({ app, path: '/api', cors: false });

    app.get('/debug', () => {
      throw new Error('My first Sentry error!');
    });

    app.use(Sentry.Handlers.errorHandler() as express.ErrorRequestHandler);

    app.listen(PORT, () => debug(`? App is Listening on port ${PORT}`));
  } catch (err) {
    Sentry.captureException(err);
    console.error(err);
    await mongodb.closeAsync();
    process.exit(1);
  }
})();

0 个答案:

没有答案