在请求级别更改 express 中间件中的全局变量。阻止某些请求的获取

阿拉尔

是否可以在 express 的请求级别更改全局变量(如 fetch)?

我有这个中间件。

app.use((req, res, next) => {
  if(req.headers.host.startsWith('mock.')) {  // e.g. mock.myapp.com
     global.fetch = {};
  }
  next();
});

我的意图是fetch在某些请求中阻止使用,但在其他请求中允许使用

这会影响后续请求吗?

如果可以,我如何才能将此更改应用于当前请求。

jfriend00

出色地。可以在中间件中更改全局变量,但是做您想做的事情是不切实际的,因为 node.js 可以轻松地同时处理多个请求。因此,您不能真正为一个不会影响同时处理的其他请求的请求更改全局环境。

您实际上必须强制 Express 序列化所有请求处理(构建某种输入队列),并且在开始处理下一个请求之前只处理一个请求直到完成。当然,这会破坏 node.js 的可扩展性。

“每个请求”环境是req对象。这就是中间件通常只放置适用于这个请求的东西的地方。

我的目的是阻止在某些请求中使用 fetch 但在其他请求中允许它。

真的不能那样做。

这会影响后续请求吗?

是的。您将永久更改global对象。

如果可以,我如何才能将此更改应用于当前请求。

我认为我们需要更多地了解您实际尝试解决的更高级别的问题以及原因。req对象是放置状态的典型位置,该状态应该唯一地应用于此特定请求处理,因为req每个请求都有一个唯一对象,并且一个请求对任何其他请求的对象一无所知。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

对Express中的中间件测试进行存根请求\响应

来自分类Dev

使用中间件在 express 中访问 get 请求

来自分类Dev

如何在Express中制作中间件,如果请求太大,该中间件将返回413?

来自分类Dev

使用Express中间件按请求配置模块?

来自分类Dev

使用Express中间件进行每个请求的模块配置?

来自分类Dev

Express app.locals是否在请求之间共享?

来自分类Dev

无法在快速中间件中获取请求参数

来自分类Dev

Node.js express.json中间件未按预期解析请求

来自分类Dev

对MongoDB的GET和POST请求上的Express-Winston中间件错误

来自分类Dev

Express会话变量不会在请求中持久存在

来自分类Dev

Express.js:在请求钩子中为 EJS 添加变量

来自分类Dev

Python 在请求中使用时更改了变量

来自分类Dev

使用SailsJS / Express在请求之间将对象保留在内存中

来自分类Dev

在Sails express节点js中,如何在请求的页面加载时显示广告

来自分类Dev

NodeJS Express中每个请求的全局范围

来自分类Dev

Express +请求中途更改标头

来自分类Dev

Express +请求中途更改标头

来自分类Dev

NodeJs/Express 请求被 SetTimeout 阻止?

来自分类Dev

Express 4中的中间件顺序

来自分类Dev

在 express 中跳过中间件

来自分类Dev

为什么在请求app.css时express返回index.html?

来自分类Dev

使用 express 在请求范围内访问经过身份验证的用户的信息

来自分类Dev

如何从多部分表单数据中获取Node JS中间件中的请求正文?

来自分类Dev

在请求中插入变量

来自分类Dev

如何在中间件Laravel中获取请求的控制器和动作的名称

来自分类Dev

用于将原始帖子数据保存在请求对象中的中间件不会“继续”并导致超时

来自分类Dev

在Laravel中,ajax请求中是否忽略了中间件?

来自分类Dev

从错误的分支开始,如何在请求请求中将更改更改为正确的分支?

来自分类Dev

Express Knex请求查询

Related 相关文章

  1. 1

    对Express中的中间件测试进行存根请求\响应

  2. 2

    使用中间件在 express 中访问 get 请求

  3. 3

    如何在Express中制作中间件,如果请求太大,该中间件将返回413?

  4. 4

    使用Express中间件按请求配置模块?

  5. 5

    使用Express中间件进行每个请求的模块配置?

  6. 6

    Express app.locals是否在请求之间共享?

  7. 7

    无法在快速中间件中获取请求参数

  8. 8

    Node.js express.json中间件未按预期解析请求

  9. 9

    对MongoDB的GET和POST请求上的Express-Winston中间件错误

  10. 10

    Express会话变量不会在请求中持久存在

  11. 11

    Express.js:在请求钩子中为 EJS 添加变量

  12. 12

    Python 在请求中使用时更改了变量

  13. 13

    使用SailsJS / Express在请求之间将对象保留在内存中

  14. 14

    在Sails express节点js中,如何在请求的页面加载时显示广告

  15. 15

    NodeJS Express中每个请求的全局范围

  16. 16

    Express +请求中途更改标头

  17. 17

    Express +请求中途更改标头

  18. 18

    NodeJs/Express 请求被 SetTimeout 阻止?

  19. 19

    Express 4中的中间件顺序

  20. 20

    在 express 中跳过中间件

  21. 21

    为什么在请求app.css时express返回index.html?

  22. 22

    使用 express 在请求范围内访问经过身份验证的用户的信息

  23. 23

    如何从多部分表单数据中获取Node JS中间件中的请求正文?

  24. 24

    在请求中插入变量

  25. 25

    如何在中间件Laravel中获取请求的控制器和动作的名称

  26. 26

    用于将原始帖子数据保存在请求对象中的中间件不会“继续”并导致超时

  27. 27

    在Laravel中,ajax请求中是否忽略了中间件?

  28. 28

    从错误的分支开始,如何在请求请求中将更改更改为正确的分支?

  29. 29

    Express Knex请求查询

热门标签

归档