我正在努力解决一些看起来并不难的问题:假设我有 2 个 url 来访问我的服务器:
http://localhost:80/
和外部网址
http://domain.com/internal/
如果转发的主机等于外部 url 主机,是否有办法添加基本路径内部
?
类似于:
app.use(function(req, res, next) {
if (req.headers['x-forwarded-host'] === 'domain.com') {
app.use('/internal', routes);
} else {
next();
}
})
最佳答案
不会有任何直接的方法,就像捷径一样可以解决个人用例的问题。
不过我建议这个简单的方法。让我们以 app.get('/xyz')
路由为例。
可以通过 http://locahost:80/xyz
或 yourdomain.com/xyz
通过任何非本地托管的应用程序进行本地访问(除非您在自己的应用程序中使用域名进行调用)。
当调用是内部调用时,为每个请求添加 header 元素。
现在,每当我们的 /xyz
路由被调用时,都会使用 if
条件检查该 header 元素,如果请求是在内部发出的,您将在那里拥有该 header 元素,然后您可以简单地使用 res.redirect
或您认为有用的任何其他方法(当前路由中的导出函数或您认为简单且需要的任何其他方法)。
关于node.js - 暴露不同域上的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36939728/