【问题标题】:Manually throwing status code errors on console在控制台上手动抛出状态码错误
【发布时间】:2021-07-17 05:41:39
【问题描述】:

我正在创建一个由 NodeJS 和 ExpressJS 支持的 React Web 应用程序。我的项目不适合服务器端渲染,因此我完全使用 React 来管理路由。

但是,当应用程序成功重定向到自定义 404 页面时,它不会在控制台上输出任何消息。由于路由是在没有 SSR 的情况下实现的,所以我也不希望这样。但我找不到在控制台上正确返回状态码错误(本例中为 404)的方法。

tldr:我想在控制台上模拟一个真正的 404 错误,而实际上没有响应对象。

我试过console.error(404),但它只输出这个:

但我想看到的是这样的:

感谢任何想法。

【问题讨论】:

  • 你能从你的 nodejs 后端发送 404 状态吗?
  • 不能在控制台模拟404错误;你必须从服务器返回一个 404 HTTP 状态码。
  • 我可以使用 ExpressJS res.status(404).send("Not Found") 做到这一点,但这是在管理请求和响应的 app.use(function(err,req,res,next){ ... } 函数中。由于我的 React 代码没有请求-响应管理,我无法原生返回错误。
  • @chipit24 没有使用服务器端渲染的静态路由,我不知道如何让服务器端知道 React 捕获的 404 错误(使用<Route component={NotFound} />
  • 为什么需要手动在控制台抛出404错误?如果您只想显示“404(未找到)”错误,您可以在 Express 中设置一个 404 端点,并在您在前端点击未定义的路由时向该端点发送请求。

标签: javascript reactjs console


【解决方案1】:

为了能够在React 应用程序上实现接收404 GET 打印在console 上的错误代码,一些其他的服务器端渲染(SSR) 实现(不仅仅是ExpressJS 自定义SSR,而是内置-在功能中)是必需的。这是由NextJS 自动完成的,我通过将整个项目切换为单独编写在NextJS 上解决了我的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2019-10-25
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多