有没有办法在摩根中记录响应正文?

2024-01-06

我想将响应正文记录在我的日志文件中

我已经尝试过 morgan-body 但我想将响应记录在文件中而不是控制台中

以下代码将记录请求正文,那么有没有办法也记录响应?

morgan.token('body', function (req, res) { return JSON.stringify(req.body) });

app.use(morgan(':method :url :status :response-time ms - :res[content-length] :body - :req[content-length]', { 
  stream: logger.successLogStream,
  skip: function (req, res) { return res.statusCode >= 400 }
 }));

 app.use(morgan(':method :url :status :response-time ms - :res[content-length] :body - :req[content-length]', { 
  stream: logger.errorLogStream,
  skip: function (req, res) { return res.statusCode < 400 }
 }));

例如我想记录以下错误消息

return res.status(400).send({ "message": "Campaign id is not defined" })

你可以用这个

const app = express()
const originalSend = app.response.send

app.response.send = function sendOverWrite(body) {
  originalSend.call(this, body)
  this.__custombody__ = body
}

morgan.token('res-body', (_req, res) =>
  JSON.stringify(res.__custombody__),
)

...

app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use(morgan(loggerFormat, { stream: logStream }))
app.use(...routers)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法在摩根中记录响应正文? 的相关文章

  • 从 mongoDB 获取数据并在 HTML 上显示

    我无法理解如何从 MongoDB 数据库获取数据并将其显示在 HTML 上 我已经设置了数据 这是 server js 文件 const path require path const express require express con
  • 从express.js 中删除所有标头

    我正在创建一个页面 其中有一些数据可以由另一个设备解析 我曾经使用 php 执行此操作 但现在将其移至 Node js 我需要从页面中删除所有标题 这样我就只有我的输出 此输出是对 GET 请求的响应 此刻我有 HTTP 1 1 200 O
  • 如何调试 Node.js 中的标头发送错误

    我得到了很多Can t set headers after they are sent错误 他们似乎从来没有给我我的行号app js 这正常吗 人们如何调试这些错误 我抛出标题错误的代码看起来像这样 它是否做了一些奇怪的事情来隐藏行号 ap
  • 要求节点模块 var 或 const 的最佳方法是什么?

    当我们需要诸如express或bodyParser之类的节点模块时 我们将使用var关键字创建变量并分配模块 我们不能用const声明这样的模块 也就是说 代替这个 var express require express var app e
  • fetch-mock 不会嘲笑我的 fetch

    这是代码片段 var fetch require node fetch var fetchMock require fetch mock function setupMockBlockChainExplorer fetchMock mock
  • 使用 Bot Framework 记录 Node.js-Azure 应用程序

    我有一个托管在 Azure 上的节点应用程序 Bot Framework 机器人 记录调试信息的最佳方法是什么 例如 据我所知 使用console log 没有帮助 因为 Azure 中没有可供查看的控制台 我也不想打电话session s
  • Passport-azure-ad,它是否解析并验证令牌?

    我的 MEAN 堆栈应用程序使用 Azure AD 进行身份验证 我在用 护照天蓝色广告 Web api 身份验证模块 基于在这里发帖和回复 https stackoverflow com questions 36653812 passpo
  • 在节点中使用mongoosejs更新多条记录

    我在使用 mongoosejs 和 Node js 更新多个记录时遇到问题 由于某种原因 即使有多个匹配 我也只更新一条记录 我还注意到回调在 update 之后不会触发 我没有收到任何错误消息 这里发生了什么 Page find stat
  • 节点socket.io,有什么可以防止洪水吗?

    我怎样才能阻止某人简单地做 while true client emit i am spammer true 当有人想要让我的节点服务器崩溃时 这肯定会成为一个问题 就像 tsrurzl 说的 你需要实施一个速率限制器 https en w
  • 向 Stripe 提交付款请求时出现“无此类令牌”错误

    我正在使用 Stripe API 设置付款 以允许用户在 iPad 上登录其 Stripe 帐户并接受任何人的付款 为此 我使用 Stripe Connect 登录并保存他们的帐户 ID 然后使用STPPaymentCardTextFiel
  • Nodejs 进程挂起,我该如何调试它或收集转储?

    我的nodejs进程在Linux上运行 现在挂起并且CPU为100 无论如何我可以调试它并找到原因吗 我需要收集转储吗 如何收集 谢谢 有一个 npm 模块叫做节点为何运行 https www npmjs com package why i
  • nodejs请求库,获取响应时间

    使用nodejsrequest图书馆 https github com mikeal request https github com mikeal request var request require request request h
  • 如何在 Android 上运行我的 Node.js 项目?

    我的 android 平板电脑上有一个可用的 php 服务器 所以我希望它也可以以某种方式运行 nodejs 源代码可以在github上找到 也可以在linux上构建 但我不太明白如何构建它 提前致谢 网站上缺少构建说明 下载它 wget
  • 错误:无法检测网络(事件=“noNetwork”,代码=NETWORK_ERROR,版本=providers/5.6.8)

    我想连接到ganache我得到一个error我不知道如何解决它 这是我的deploy js代码 它是脚本node js const ethers require ethers const solc require solc const fs
  • ENOTEMPTY:目录不为空,重命名 '' -> '' (JavaScript + NPM + Ubuntu 服务器)

    好吧 我一直在为一个名为discord 的流行的类似Teamspeak 的程序制作一个机器人 我在 Ubuntu 服务器上运行机器人 并使用 NPM install 来安装各种模块 目前 该机器人的本地版本工作正常 但在 Ubuntu 上我
  • 在 sinon.js 中存根和/或模拟类?

    我已经为我的应用程序创建了一个数据库包装器 如下所示 为了测试它 我显然想替换实际的数据库 我可以创建一个新类来模拟query方法并捕获那里的所有输入 但是使用sinon js看起来更合适 但是我该如何使用它呢 Is the mock or
  • 将查询快照中的文档返回为 json 字符串 firestore

    我在节点到 firestore 中进行了查询以获取文档集合 我想将集合编写为 json 字符串以供应用程序解析 我的代码如下 serverRef db collection servers getDocs serverRef where o
  • mime.lookup 的 webrtc 错误

    我在我的电脑上尝试了 webrtc 演示 但在演示步骤 04 中 当我使用 npm install 和 node index js 时 它显示 类型错误 mime lookup 不是一个函数 即使我通过输入 npm install mime
  • 使用 Sequelize 连接多个联结表

    我有一个包含三个主表的数据库 users teams and folders由两个连接表连接 users teams and teams folders 用户和团队之间以及团队和文件夹之间存在多对多关系 一个用户可以属于多个团队 并且团队可
  • 根据路由动态加载 Node.js 模块

    我正在使用 Express 在 Node js 中做一个项目 这是我的目录结构 root start js server js lib api user getDetails js user register js The lib api

随机推荐