素材牛VIP会员
express4 路由连接地址参数匹配
 多***哈  分类:Node.js  人气:843  回帖:2  发布于6年前 收藏

刚入node.js的坑,问个express的链接地址参数匹配的问题:
我有如下/play/key?secret=xxxxx /play/key&secret=xxxxx的地址,如何分别匹配到key和secret的值?第一种情况已经解决,key用req.params[0]取得,secret用req.query.secret,关键第二种情况如何实现?求方法。。。必须要用正则么?

 标签:node.js

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv7 码师
你***擦 Linux系统工程师 6年前#1

第二种情况你就不能把 key 和 secret 当成两个 querystring 参数来传吗

Lv3 码奴
那***s JS工程师 6年前#2
//匹配仅一项结果
function matchOnly(pattern,str) {
    var matches = pattern.exec(str);
    return matches[1]?matches[1]:'';
}

var url = '/play/key&secret=xxxxx';
var p_key = /play\/(.*?)&/;  //正则式 获取key
var key = matchOnly(p_key,url);
var p_secret = /play\/.*?&secret=(.*?)(?:&|$)/;  //正则式 获取secret
var secret = matchOnly(p_secret,url);

用什么方法都行,这里是用正则式,你也可以用字符串的处理函数,都可以,也不要太纠结express到底有么有提供直接获取的方法,即便有,它也是在这样处理字符串。

当然,有很多插件可以用的 body-parser 我是用这个插件,之后你就可以 req.body.secret,用这种键值的方式访问了。。。

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取