我正在學習如何在結尾沒有指向任何頁面時將用戶重定向到 404 頁面。我被困在如何將用戶重定向到頁面上。我不確定是 URL 結尾部分輸入錯誤還是發送檔案部分錯誤。
這是我到目前為止所嘗試的:
app.get('/:type', (req, res)=> {
let path = require('path');
res.status(404).sendFile('404.html');
});
uj5u.com熱心網友回復:
如果您需要處理 404,您可能需要在 app.js 的末尾添加此路由:
//The 404 Route (ALWAYS Keep this as the last route)
app.get('*', (req, res) => {
res.status(404).send('Not Found');
});
或者,
app.use((req, res, next) => {
const err = new httpError(404)
return next(err);
});
如果您正在使用express,它將由它處理。您可以檢查此鏈接,如果上述方法不起作用,它有許多幾乎相似的選項。
uj5u.com熱心網友回復:
假設您使用的是 express.js。Express FAQ回答了這個問題。查看“如何處理 404 回應?”
在你的情況下,這樣的事情應該有效:
app.use(function (req, res, next) {
res.status(404).sendFile('./pathTo/404.html');
});
uj5u.com熱心網友回復:
好像您只是在匯入后忘記使用 path.join 函式;)
不要忘記將 dirname( __dirname) 與您的檔案名連接起來。
const path = require('path');
app.get('*', (req, res)=> {
res.status(404).sendFile(path.join(__dirname, "/404.html"));
});
在所有路線之后使用它而不是在它們之前。
如果您想發送此檔案以防出現 get 請求,那么應該這樣做,但如果您希望它用于所有請求,那么您應該使用 app.use 代替 app.get
uj5u.com熱心網友回復:
我認為您對前端路由和后端路由感到困惑,請參考this。它們是分開處理的,你有點把它們混合在一起。
據我了解,您正在嘗試將用戶重定向到 404 自定義 html 錯誤頁面,您可以這樣做,但在前端(角度)。
{path:"**",pathMatch:"full",redirectTo:"/home"}
此外,最好將它們重定向到“主頁”頁面而不是錯誤頁面,以獲得更好的用戶體驗。404自定義錯誤頁面可用于不同目的,例如網路故障,服務器停機,代碼故障(注意:它們也是為了更好的用戶體驗。)
在 node.js 中,它是一個端點,這些 API 由開發人員在內部呼叫,您會收到一個請求,要么您有回應,要么沒有回應,如果您沒有,您可以執行類似這樣的操作
app.get('*', (req, res) => {
res.status(404).send('Not Found');
});
如果你覺得這個答案有用請采納
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/413831.html
標籤:
