目前我在字符串中有如下状态:
var states = 'AL|AK|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL...';
我想捕捉
mydomain.com/CA/more-stuff
分成两个单独的参数。第一个带有状态信息,第二个带有附加信息。我知道如何获取附加信息:
app.get('/' ??? + '/:additional', ...);
如何捕获状态信息?
如果将其定义为路径中的参数...
app.get('/:stateabbr/:additional', ...);
您可以使用以下方法对其进行验证app.param()
:
app.param('stateabbr', function (req, res, next, abbr) {
var stateAbbrs = /AL|AK|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL|../i
if (stateAbbrs.test(abbr)) {
next()
} else {
next(new Error('Unrecognized State abbreviation.'));
}
});
试试这个
var states = 'AL|AK|AR|AZ|CA|CO|CT|DC|DE|FL|GA|HI|IA|ID|IL...';
app.get('/:state('+ states + ')/:additional', function(req,res,next){
res.send('state:'+req.params.state+',additional:'+req.params.additional);
})
我已经对其进行了测试,它应该可以按照您的要求工作:)