gpt4 book ai didi

javascript - 当我将 'console.log(err.message)' 放入 express 应用程序的错误处理程序中时,它会无休止地记录,但为什么呢?

转载 作者:行者123 更新时间:2023-12-03 08:44:46 30 4
gpt4 key购买 nike

我只是在尝试制作基本的错误处理功能,该功能使用错误的 json 数据响应并在控制台上记录错误。

但是当我把 console.log(err.message);'在错误处理程序中并启动服务器(通过 npm installnpm start )。即使我什么都没做,它也会继续记录..

似乎记录了 404("Not Found") 的消息我在错误处理程序模块之前定义的。

这可能只是我本地设置的问题,但我不知道它是什么。我正在使用 Atom

//for 404
app.use((req,res,next)=>{
const err = new Error('Not Found');
err.status=404;
next(err);
});

//error handler
app.use((err,req,res,next)=>{
console.log(err.message);
res.status(err.status || 500);
res.json({error:{
message:err.message
}});
})

如果我什么都不做,我希望输出一定是空的。并且仅以一些错误的请求登录控制台。
enter image description here

并按照下面的建议,我为 req.url 添加了模块,发现有无限的 '/json/version' 和 '/json/request...
但它来自哪里..?
enter image description here

最佳答案

我使用 morgan 包找到了原因。 Morgan 是一个可以在 express 中使用的 HTTP 请求记录器包。 https://www.npmjs.com/package/morgan

我使用以下代码安装了 morgan :

const express = require('express')
const morgan = require('morgan')
const app = express()

app.use(morgan('dev'))

当我执行您的代码时,我多次将错误记录到控制台。

这是输出:

morgan logging results

在我的情况下,错误记录了两次,因为浏览器请求了 favicon.ico 文件(我的项目中不存在该文件)。

这不是什么大问题。但是,如果它发生两次以上,安装 morgan,您将能够记录请求并查看导致多个错误消息的原因。

关于javascript - 当我将 'console.log(err.message)' 放入 express 应用程序的错误处理程序中时,它会无休止地记录,但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57087258/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com