debian

Node.js日志中如何识别异常请求

小樊
31
2025-03-06 09:18:11
栏目: 编程语言

在Node.js中,可以使用中间件来捕获和处理异常请求。以下是一个使用Express框架的示例,展示了如何识别异常请求并将其记录到日志中:

  1. 首先,确保已经安装了Express和Morgan(用于记录请求日志)这两个npm包。如果没有,请运行以下命令进行安装:
npm install express morgan
  1. 创建一个名为app.js的文件,并在其中编写以下代码:
const express = require('express');
const morgan = require('morgan');
const app = express();

// 自定义Morgan日志格式,添加响应状态码
morgan.token('status', (req, res) => {
  return res.statusCode;
});

// 使用自定义的Morgan日志格式
app.use(morgan(':method :url :status :res[content-length] - :response-time ms'));

// 示例路由
app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.get('/error', (req, res) => {
  // 抛出一个异常
  throw new Error('Oops! Something went wrong.');
});

// 异常处理中间件
app.use((err, req, res, next) => {
  console.error('Exception caught:', err.message);
  res.status(500).send('Internal Server Error');
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

在这个示例中,我们使用Morgan记录请求日志,并自定义了一个日志格式,其中包括响应状态码。我们还添加了一个异常处理中间件,用于捕获和处理异常请求。当异常被捕获时,我们将其记录到控制台,并向客户端发送一个500 Internal Server Error响应。

现在,运行node app.js启动服务器,并访问http://localhost:3000/error。你应该会看到异常请求被记录到控制台中,类似于以下输出:

Exception caught: Oops! Something went wrong.

这样,你就可以在Node.js日志中识别和处理异常请求了。

0
看了该问题的人还看了