404 页使用 javascript node.js

404 pages using javascript node.js

我正在学习如何在结尾未指向任何页面时将用户重定向到 404 页面。我坚持如何将用户重定向到页面。我不确定是 URL 结束部分输入错误还是发送文件部分错误。

这是我目前尝试过的方法:

    app.get('/:type', (req, res)=> {
    let path = require('path');
    res.status(404).sendFile('404.html');
    });

如果需要处理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,它将由它处理。您可以检查 this link 如果上述方法不起作用,它有许多几乎彼此相似的选项。

假设您正在使用 express.js。 Express FAQ 回答了这个问题。查看“我如何处理 404 响应?”

在你的情况下,像这样的事情应该有效:

app.use(function (req, res, next) {
  res.status(404).sendFile('./pathTo/404.html');
});

似乎您只是在导入后忘记使用 path.join 函数 ;)

不要忘记将目录名( __dirname) 与您的文件名连接起来。

const path = require('path');
app.get('*', (req, res)=> {
    res.status(404).sendFile(path.join(__dirname, "/404.html"));
});

在所有路线之后而不是在它们之前使用它。

如果你只是想在收到请求时发送这个文件,那么应该这样做,但如果你想要它用于所有请求,那么你应该使用 app.use 代替 app.get

我想你对前端路由和后端路由感到困惑,请参考this。它们是分开处理的,你有点把它们混在一起了。

据我了解,您正试图将用户重定向到 404 自定义 html 错误页面,您可以这样做,但在前端 (ANGULAR)。

{path:"**",pathMatch:"full",redirectTo:"/home"}

此外,最好将它们重定向到“主页”页面而不是错误页面,以获得更好的用户体验。 404自定义错误页面可用于网络故障、服务器宕机、代码崩溃等不同目的(注意:它们也是为了更好的用户体验。)

在 node.js 中,它是一个端点,这些 API 由开发人员在内部调用,您收到一个请求,要么有响应,要么没有响应,如果没有,您可以这样做

app.get('*', (req, res) => {
  res.status(404).send('Not Found');
});

如果您觉得此答案有用,请accept it