构建高效Node.js中间层:探索请求合并转发的艺术
// 导入必要的模块
const express = require('express');
const axios = require('axios');
const morgan = require('morgan');
// 创建Express应用
const app = express();
// 日志记录中间件
app.use(morgan('combined'));
// 中间层路由处理
app.post('/user/:id/merge', async (req, res) => {
try {
// 合并请求体和查询参数
const mergedBody = { ...req.body, ...req.query };
// 发送请求到下游服务
const downstreamResponse = await axios.post(
`http://downstream-service/user/${req.params.id}/merge`,
mergedBody
);
// 将下游服务的响应转发给客户端
res.status(downstreamResponse.status).send(downstreamResponse.data);
} catch (error) {
// 错误处理
console.error('合并转发请求失败:', error);
res.status(500).send('服务器错误');
}
});
// 启动服务器
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`服务器运行在 http://localhost:${PORT}`);
});
这段代码展示了如何使用Express框架和axios库来创建一个简单的Node.js中间层服务器,它接收POST请求,合并请求体和查询参数,并将请求转发到下游服务。同时,它使用morgan记录HTTP请求日志,并包含了错误处理和服务启动的基本代码。
评论已关闭