Express JS:如何通过标头请求管理路由?

舍夫安托

我管理了一个基于 Express JS 的 API 服务。我有 2 或 3 个客户端请求我的 API。来自客户端的所有请求都由单个单一应用程序处理,目前我正在使用此代码处理该请求

const express = require('express');
const webRoute = require('./src/routes/web/index')
const cmsRoute = require('./src/routes/cms/index');

app.use('/web', webRoute)
app.use('/cms', cmsRoute)


// This Code works just fine. The routes defined by url request

但我希望路线请求不是来自Url而是由其标头请求,它看起来像这样appKey = 'for-key' appName='web'

curl -X GET \ 
  http://localhost:3000/cms \ 
  -H 'Authorization: Bearer asfsfafgdgfdgddafaggafagafasgfghhjhkgflkjkxjvkjzvxzvz' \ 
  -H '邮递员-令牌:c36d6d5a-14b7-405ebf'keylogger'-H '邮递员-令牌:c36d6d5a-14b7-405ebf'keylogger'-hk36d6d5a-14b7-405ebf1'keylogger- 
  H 
  -H 'appName: web (我想要这个标题)' \ 
  -H 'cache-control: no-cache'

谢谢大家

编辑笔记:

在我当前的代码中,要使用这个调用 apihttps://localhost:3000/cms/user/profile or https://localhost:3000/web/user/profile我希望所有请求只使用https://localhost:3000/user/profile而不添加前缀webcms

jfriend00

根据评论,您似乎想要使用单个 URL 表单,例如:

https://localhost:3000/user/profile

并且,根据appName自定义标头将其路由到正确的路由器

您只需检查自定义标头值并手动将请求发送到所需的路由器即可。

const webRoute = require('./src/routes/web/index')
const cmsRoute = require('./src/routes/cms/index');

// custom middleware to select the desired router based on custom header
app.use((req, res, next) => {
    const appName = req.get("appName");
    if (appName === "web") {
        webRoute(req, res, next);
    } else if (appName === "cms") {
        cmsRoute(req, res, next);
    } else {
        next();
    }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何防止通用路由在 Express.js 中的特定路由中设置标头?

如何在express.static中提取请求标头

Express.js路由错误:发送标头后无法设置标头

Express +请求中途更改标头

Express.js-如何检查标头是否已发送?

如何使用express / node.js配置CSP标头?

如何使用 express.js 获取响应标头

使用静态站点时,如何使用Express处理路由?

Express路由器使用Passport.js发送HTML标头而不是JSON

如何在路由上传递多个请求 EXPRESS JS

Express JS:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

Node.js + Express:尝试正确显示GET请求标头

Express JS 4.0,提供二进制数据,请求Accept标头更改输出

TypeScript 在 Express 中添加自定义请求标头

访问自定义请求标头节点Express

Node Express Get 请求传递自定义标头

Node JS/Express 路由

使用 Express JS 的路由

如何在express.js资产上设置响应标头

Express / node.js发送后无法设置标头

发送标头后无法设置。Express JS

Express.js或angular用于在MEAN应用程序中处理路由?

如何从express req对象中删除标头?

如何查看Node Express中的所有响应标头?

如何使用 Express 和 React 作为 UI 构建器在后端处理路由

使用 @types/express 删除标头 X-powered-by Express

node.js / express:发送标头后无法设置标头

在 express js 中的 res.send() 之后发送标头后无法设置标头

如何处理Express.js路由?