2017-10-04 52 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選項,繼續播放它 –