在Node.js中,可以使用中间件来捕获和处理异常请求。以下是一个使用Express框架的示例,展示了如何识别异常请求并将其记录到日志中:
- 首先,确保已经安装了Express和Morgan(用于记录请求日志)这两个npm包。如果没有,请运行以下命令进行安装:
npm install express morgan
- 创建一个名为
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日志中识别和处理异常请求了。