正则表达式 – 使用Node JS中的Express进行预查询
发布时间:2020-12-14 06:31:17 所属栏目:百科 来源:网络整理
导读:我正在尝试使用express来解析查询字符串,以防设置某些参数并在实际路由发生之前执行一小段代码.用例是获取一个可以设置的特定值,与所使用的链接无关.我使用express’功能使用next()将内容传递给下一个可能的规则. 到目前为止,我尝试过 – 在所有app.get / po
我正在尝试使用express来解析查询字符串,以防设置某些参数并在实际路由发生之前执行一小段代码.用例是获取一个可以设置的特定值,与所使用的链接无关.我使用express’功能使用next()将内容传递给下一个可能的规则.
到目前为止,我尝试过 – 在所有app.get / post-rule-block的最顶端: app.get('[?&]something=([^&#]*)',function(req,res,next) { var somethingID = req.params.something; // Below line is just there to illustrate that it's working. Actual code will do something real,of course. console.log("Something: "+somethingID); next(); }) app.get('/',site.index); 并且: app.param('something',next) { var somethingID = req.params.something; console.log("Something: "+somethingID); next(); }) app.get('/',site.index); 应触发的示例: URL: www.example.com/?something=10239 URL: www.example.com/superpage/?something=10239 URL: www.example.com/minisite/?anything=10&something=10239 不幸的是,我的解决方案都没有真正起作用,而且所有发生的事情都是,下一个匹配规则被触发,但上面的小功能永远不会被执行.有人知道如何做到这一点? 编辑:我明白,param-example不能正常工作,因为之后我没有在任何其他路由规则中使用所述参数,而只会触发它. 我也明白,逻辑暗示,Express忽略了查询字符串,并且通常在路由已经发生之后在函数内解析.但正如所提到的,我需要将其视为“与路由无关”,并与此应用程序中处理的任何URL一起使用.
express不允许您根据查询字符串进行路由.如果存在相关参数,您可以添加一些执行某些操作的中间件;
app.use(function (req,next) { if (req.query.something) { // Do something; call next() when done. } else { next(); } }); app.get('/someroute',function (req,next) { // Assume your query params have been processed }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails-4 – 如何使用电子邮件预览同时捕获所有路线
- 对比高性能I/O设计模式-Reactor/Proactor
- 如何使用Qt Designer生成的ui文件
- QT中如何实现XML文件的创建、增加、修改、删除功能。
- 比较NSIndexPath Swift
- Ruby EventMachine – 如何将值从EM :: Deferrable返回到主
- 使用Flash Professional CS5.5实现不同源文件之间库资源共享
- 学习使用SQLite(版本3.7.4)(中F)
- CMake在.o和.a文件之间添加了不必要的依赖关系
- using pgfincore to pre-cache frequency data