我正在尝试编写自己的Node.js代理。我知道还有其他节点模块可以做到这一点,但我想亲自手动完成学习体验。
我有以下功能,我用server.use()
function foo(req, res, next) {
var url = /container-templates/;
if (url.test(req.url)) {
res.writeHead(301, {"Location": '/staging.host/' + req.url});
res.end();
} else { next() }
}
但是当它重定向时,它会一遍又一遍地以奇怪的方式连接网址......例如:
Request URL:http://10.14.23.61:9000/staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//staging.host//container-templates/allIds
任何想法我做错了什么?
答案 0 :(得分:2)
当然,如果你只使用server.use()
安装它,那么每次请求都会触发它,所以在每次请求时它都会执行你所拥有的逻辑。您需要另一个具有更高先例的处理程序来响应第一个重定向并提供某种响应。