2017-10-04 51 views
0

我想在包含.map/assets路径中的特定文件上服务400。例如:/assets/foo-huh4hv45gvfcdfg.map.js正则表达式路径上的快速服务400

这里是我有什么,但不能正常工作,如我所料:

app.get('/assets\/.*map$/', (req, res) => { 
    res.status(400).send() 
}) 

我觉得我的正则表达式可能是不正确的?

+0

你想成为一个js文件,或给出一个js文件的信息? – hurricane

+0

我想回复400状态,就是这样。 – JBd

+1

'/'是什么意思?如果那匹配? (在这种情况下,你应该逃避它们)。当你的例子有一个额外的'.js'时,为什么还要使用'$'(字符串结尾)? – Ivar

回答

0

也许你可以使用一个positive lookahead并检查“.MAP”:

\/assets\/.*(?=\.map).* 
+0

我试过以下解决方案: 'app.get('\\/assets \\ /.*(?= \ \ .map)。*',(req,res)=> res.status(400).send() })' 但是,当访问url/assets/main.js.map和url/assets/main-fhguhufgdh.map.js时,它不会像预期的那样返回400。 – JBd

+0

如果删除双反斜杠,它有帮助吗? ''/ assets /.*(?= \。map)。*'' –

+0

或者你可以用''。/''替换''。''/ assets /.*(?= [。]地图)。*“' –

0

你不是在寻找.js文件。尝试

'/assets/.*map.js' 

或尝试这个搜索包含地图,用任意一组非空白字符和可能的空白线(EOL)结束之前结束的文件

'/assets/.*map\S*' 
+0

我已经尝试了底层解决方案,但是当访问http://url/assets/main.js.map和http://url/assets/main-fhguhufgdh.map.js时,它不会返回400如预期的那样 – JBd

+0

我已经删除了eol和whitespace选项,继续播放它 –