【问题标题】:404 pages using javascript node.js404 页面使用 javascript node.js
【发布时间】:2022-01-17 15:35:26
【问题描述】:

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

这是我迄今为止尝试过的:

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

【问题讨论】:

  • 你在使用 express.js 吗?
  • @kevintechie 是的,我看过网站,还是有点困惑

标签: javascript html node.js function http-status-code-404


【解决方案1】:

如果需要处理 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 链接,如果上述方法不起作用,它有许多几乎相似的选项。

【讨论】:

    【解决方案2】:

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

    在你的情况下,这样的事情应该可以工作:

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

    【讨论】:

      【解决方案3】:

      好像你只是在导入后忘记使用 path.join 函数;)

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

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

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

      如果您想发送此文件以防获取请求,那么应该这样做,但如果您希望它用于所有请求,那么您应该使用 app.use 代替 app.get

      【讨论】:

        【解决方案4】:

        我想你对前端路由和后端路由有混淆,请参考this。它们是分开处理的,您可以将它们混合在一起。

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

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

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

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

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

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

        【讨论】:

          猜你喜欢
          • 2017-03-28
          • 2011-07-10
          • 1970-01-01
          • 2014-01-22
          • 2012-01-20
          • 2022-11-13
          • 2017-05-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多