node.js - 在并发请求的情况下如何从请求中设置全局变量
问题描述
我正在使用 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
变量将被另一个请求覆盖,这将破坏一切。我怎样才能避免这种情况?我必须动态地做到这一点。
解决方案
推荐阅读
- javascript - 如何像mysql一样从jQuery中的json或数组数据中搜索名称
- python-3.x - 创建默认值
- javascript - RxJS - 检测长鼠标按下
- c# - json 用 newtonsoft 序列化列表
- javascript - 如何在 eval 语句中插入括号以对 JavaScript 中的操作进行排序?
- javascript - 如何将字符串数组转换为二维数组?
- linux-kernel - 与内核和编译器优化共享内存
- jquery - jQuery验证自定义函数 - 超过最小值
- android - 活动可见时立即显示 toast
- spring-boot - 如何将代码从 Spring Security 迁移到 Reactive Spring Security?