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