首页 > 解决方案 > 在并发请求的情况下如何从请求中设置全局变量

问题描述

我正在使用 Node 和 express 中的中间件对我的应用程序进行动态路由。所以,我从 req 中提取参数来解析路由。中间件看起来像这样:

router.get('/', (req, res, next) => {
global.c_name = req.params.c;
next();
 });

router.get('/a/:m/:controller/:action',(req, res, next) => {
    console.log(req.params);
    var controller = "./f/leg/fe/clients/"+req.params.c+"/main/process/"+req.params.m+"/controllers/"+req.params.controller;
    var controller_class = require(controller);
    console.log(controller);
    var controllerObj = new controller_class();
    var action = req.params.action;
    res.send(controllerObj[action]());
});

应用程序.js

app.use('/:c/',middleware);

我的问题是,在并发请求的情况下,该global.c_name变量将被另一个请求覆盖,这将破坏一切。我怎样才能避免这种情况?我必须动态地做到这一点。

标签: node.jsexpress

解决方案


推荐阅读