怎么用node做个中转?
比如访问127.0.0.1:8080/url,实际上访问的是 www.abc.com/api/url
使用流,管道实现么?
7 回复
可以直接把tcp流导过去,像这样
#!/usr/bin/env node
const net = require('net')
const stream = require('stream')
const transform = stream.Transform({
transform(chunk, encoding, callback) {
callback(null, chunk.toString().replace('localhost:10086', 'api.douban.com'))
}
})
const server = net.createServer((socket) => {
const client = net.connect(80, 'api.douban.com')
socket.pipe(transform).pipe(client).pipe(socket)
})
server.listen(10086)
可以访问http://localhost:10086/v2/book/5402682
express-http-proxy proxy(url, { forwardPath: function (req, res) { return newPath; } })(req, res, next);