我正在尝试创建一个使用 Express 获取 url 的应用程序。这个url是在?code=
参数中定义的,但是我不知道code后面的字符串的值。
我尝试过做这样的事情:
app.get('?code=' + /(.*)/i, function(req, res) { /* ... */ });
后来是这样的:
app.get(/\?code=(.*)/i, function(req, res) { /* ... */ });
但它永远不会匹配。我知道使用 .*
通过正则表达式匹配任何字符串,但这不是方法。我正在考虑做某种匹配表达式,但我不确定要在哪个字符串上使用匹配。
最佳答案
看来您可能误解了 get 的期望。另外,您传递的正则表达式字符串只是变成了一个字符串,对您没有多大好处,但您无论如何都不需要它。
你的 app.get 语法应该是这样的:
app.get('/myAwesomeURL/moreURL/:code', function(request, response) {
var valueForCode = request.params.code;
});
但如果您实际上只是尝试根据单词代码的存在来触发路由,那么您可以直接传递正则表达式作为第一个参数,并测试所有类型的事情:
app.get(/^(?![\w\/\:].*code$)/, function (request, response) {//stuff});
关于Javascript 通配符与 Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32800995/