node.js - 暴露不同域上的路由

标签 node.js

我正在努力解决一些看起来并不难的问题:假设我有 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/xyzyourdomain.com/xyz 通过任何非本地托管的应用程序进行本地访问(除非您在自己的应用程序中使用域名进行调用)。

当调用是内部调用时,为每个请求添加 header 元素。

现在,每当我们的 /xyz 路由被调用时,都会使用 if 条件检查该 header 元素,如果请求是在内部发出的,您将在那里拥有该 header 元素,然后您可以简单地使用 res.redirect 或您认为有用的任何其他方法(当前路由中的导出函数或您认为简单且需要的任何其他方法)。

关于node.js - 暴露不同域上的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36939728/

相关文章:

windows - 以本地用户身份在 Windows 上使用 Node.js

node.js - Mongoose - 如何用每条记录一个值更新许多特定记录?

javascript - NodeJS 中的缩进式多行日志记录

javascript - npm start 运行错误 "var before = prev.prev || {}; TypeError: Cannot read property ' prev' 未定义”

javascript - 将数组的每个元素写入文件的新行的最佳方法是什么?

node.js - 使用signedURL将base64文件上传到GCS

node.js - Nodejs嵌套 native 模块安装

node.js - 如果文档的 _id 已经存在,如何将数组元素推送到数组;如果 _id 不存在,如何创建新文档?

node.js - 在光谱测试中选择选项

node.js - 在一个 Node.js 环境中运行多个 Parse 服务器实例