vite-plugin-mock icon indicating copy to clipboard operation
vite-plugin-mock copied to clipboard

请问 url 是否支持 正则?

Open abings opened this issue 3 years ago • 1 comments

试验了下,好像不支持正则匹配url哦

{ url: //basic-api/system/pageIni/, timeout: 100, method: 'post', response: ({ query }) => { return resultPageSuccess(1, 10, true, pageIni.find(e =>e.id == '1'), accountList); }, }, 是我的写法问题吗?

abings avatar Sep 04 '21 09:09 abings

理论上是支持的,因为源码是使用https://github.com/pillarjs/path-to-regexp 的pathToRegexp函数匹配的,pathToRegexp第一个参数是支持传正则的。

普通的path是用正则是没有问题的,但是带params参数的path是有问题的,比如/api/user/:id这种如果你使用正则/\/api\/user\/:id/是有问题的,因为pathToRegexp函数会直接原封不动返回你的正则进行test,那么真实的请求/api/user/1明显是无法和正则/\/api\/user\/:id/匹配的因为:id无法和1匹配上。如果你传入的字符串"/api/user/:id"那么pathToRegexp函数会转换为正则/^\/dev-api\/user(?:\/([^\/#\?]+?))[\/#\?]?$/i,这个正则明显可以匹配id参数。因此带有params参数的path最好不要使用正则而是使用字符串。

你的正则//basic-api/system/pageIni/是不是应该做一下转译啊/\/basic-api\/system\/pageIni/

mishengqiang avatar Nov 07 '22 06:11 mishengqiang