我正在構建一個節點js應用程序,需要爲除/video
路線以外的所有路線返回一個404頁面。快遞js,如何匹配所有路線,甚至子路線
app.get('/video/*', Video.show)
app.get('*', (req,res) => res.render('not_found'))
這適用於URL沒有子目錄的情況。 當有人輸入具有子目錄(例如/hello/subhello/
)的URL時,就會出現問題。這不是我的路線。
我已經嘗試過這些選項沒有成功:
app.get('/*', (req,res) => res.render('not_found'))
app.use((req,res) => res.render('not_found'))
我這麼想嗎?
由於
EDIT
當我刪除代碼來設置車把如預期的路由得到遵守。
這是車把設置代碼:
app.engine('.hbs', exphbs({
extname:'.hbs',
defaultLayout:'layout.hbs',
layoutsDir: __dirname+ '/views'
}))
app.set('view engine', '.hbs')
app.set('views', __dirname + '/views')
如果你不知道你在找什麼,你將不得不執行'app.use()'。然後你可以使用'req.url'或者它的一些部分來創建自己的邏輯。 'req.method'會告訴你它是否是'GET','POST'等。 –
我已經試過了。它仍然沒有抓住它。即使我只是說'app.use((req,res)=> res.redirect('not_found'))' –
如果你把控制檯登錄到那個函數中,你是否曾經去過那裏?如果沒有,你必須在它到達之前重定向或響應。另外,'not_found'是你擁有的視圖的名字嗎?你有什麼錯誤嗎? –