我当前的项目使用Node作为前端和后端,并使用ExpressJS作为中间件。
我有一个需求,我需要一个功能切换实现来在我的应用程序中引入一些新功能。我正在使用url参数,例如&featureToggle=true以确定执行代码是新代码还是现有代码。
现在,我在前端和后端都有部分需要根据功能切换进行更改。在后端,我可以单独获取查询对象并提取url参数,类似地,在前端模块中也是如此。
有没有一种方法可以使用Express截取查询参数,根据功能切换将变量值设置为true或false,并且可以在前端和后端模块中使用?
使用express,您可以使用req.query来收集请求中发送的查询字符串。你可以这样通过:
localhost:9000/path?&featureToggle=true
?
很重要,它告诉express您正在创建一个查询。
如果你把它放进一个变量:
const query = req.query
您将得到以下输出:
{ featureToggle: 'true' }
正如你所看到的,它正在返回一个对象。你可以这样检查:
if(req.query.featureToggle === 'true'){
runSomeCode();
};
或者在您的情况下,如果您想运行某种中间件:
router.get('/', (req, res, next) => {
if(req.query.featureToggle === 'true'){
return next(toggle)
}
};