【发布时间】:2021-06-13 12:34:25
【问题描述】:
我想用这样的正则表达式定义一个 fastify url 路由
fastify.get('/:myregex/products',{
schema: {
params :{
myregex : {
type: 'string',
pattern: '((\\w)+:(\\w)+)'
}
},
response: {}
}
},async (req, reply) => {
reply.send(req.params.myregex);
}
});
如果我大摇大摆地尝试像/param1:value1/param2:value2/param3:value3/products 这样的网址,它会在/param1%3Avalue1%2Fparam2%3Avalue2%2Fparam3%3Avalue3/products 中翻译它,但如果我在浏览器中尝试我的字符串,我有一个 404
{ "message": "Route GET:/param1:value1/param2:value2/param3:value3/products/products not found", "error": "Not Found", "statusCode": 404 }
我做错了什么?
fastify": "^3.9.2" 节点 v12.20.1
【问题讨论】:
-
你得到 404 的 url 以
/products/products结尾 ->GET:/param1:value1/param2:value2/param3:value3/products/products是故意的吗? -
是的,问题在于查询字符串的长度
标签: node.js regex url routes fastify