目前我的字符串中的状态如下:
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', ...);
如何捕获状态信息?
答案 0 :(得分:2)
如果您将其定义为路径中的参数...
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.'));
}
});
答案 1 :(得分:1)
试试这个
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);
})
我已经测试了它,它应该按照你的要求工作:)