Express整合Sentry
阿新 • • 發佈:2018-11-08
我們的Express整合只需要安裝@ sentry / node,然後您可以像這樣使用它:
const express = require('express'); const app = express(); const Sentry = require('@sentry/node'); Sentry.init({ dsn: 'https://<key>@sentry.io/<project>' }); // The request handler must be the first middleware on the app app.use(Sentry.Handlers.requestHandler()); app.get('/', function mainHandler(req, res) { throw new Error('Broke!'); }); // The error handler must be before any other error middleware app.use(Sentry.Handlers.errorHandler()); // Optional fallthrough error handler app.use(function onError(err, req, res, next) { // The error id is attached to `res.sentry` to be returned // and optionally displayed to the user for support. res.statusCode = 500; res.end(res.sentry + '\n'); }); app.listen(3000);
如果使用TypeScript,則需要轉換處理程式以表達特定型別。它們完全相容,因此您需要更改的唯一內容是:
// from const express = require('express'); // to import * as express from 'express'; // from app.use(Sentry.Handlers.requestHandler()); // to app.use(Sentry.Handlers.requestHandler() as express.RequestHandler); // from app.use(Sentry.Handlers.errorHandler()); // to app.use(Sentry.Handlers.errorHandler() as express.ErrorRequestHandler);