1个回答

test
2024-07-17
如果是要在一个 koa app 里面,拦截请求,转发到另一个服务,可以这样
const http = require('http');
const Koa = require('koa');
const net = require('net');
const app = new Koa();
app.use((ctx, next) => {
ctx.body = 'from koa app';
});
const koaServer = http.createServer(app.callback()).listen(3000);
// const koaServer = app.listen(3000);
// proxy server
http.createServer((req, res) => {
console.log(req.method);
console.log(req.url);
}).listen(3001);
koaServer.on('connection', socket => {
const proxy_socket = net.createConnection(3001)
socket.on('data', chunk => {
proxy_socket.write(chunk);
});
socket.on('end', () => {
proxy_socket.end();
})
});
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容