首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs -如何在调试中使用morgan

Nodejs -如何在调试中使用morgan
EN

Stack Overflow用户
提问于 2017-02-02 18:27:45
回答 2查看 5.6K关注 0票数 3

摩根直接将请求输出到控制台。

如何将它们重定向到npm 调试,以便它遵循与正在记录的其他内容相同的格式?

我的debug.js配置如下所示:

代码语言:javascript
复制
import debug from 'debug';

const LOG_PREFIX = 'api';

const info = debug(`${LOG_PREFIX}:info`);
const dev = debug(`${LOG_PREFIX}:dev`);
const error = debug(`${LOG_PREFIX}:error`);

export {
  info,
  dev,
  error,
};

我现在还记录了其他的东西,比如:

代码语言:javascript
复制
import { info } from './debug';

info('App is up and running!');

我现在的摩根电话是:

代码语言:javascript
复制
app.use(morgan('combined'));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-02 18:27:45

Morgan接受一个可选参数,即

默认情况下,它指向控制台process.stdout

因为它可以调用stream.write,所以您可以轻松地构建重定向到您的debug的快速流。

代码语言:javascript
复制
app.use(morgan('combined', { stream: { write: msg => info(msg) } }));

一般说来(但仍然是ES6),这将是:

代码语言:javascript
复制
import debug from 'debug';
const info = debug('info');
app.use(morgan('combined', { stream: { write: msg => info(msg) } }));

ES5

代码语言:javascript
复制
var info = require('debug')('info');
app.use(morgan('combined', { stream: { write: function(msg) { info(msg); } }}));
票数 5
EN

Stack Overflow用户

发布于 2019-07-10 15:07:12

当使用摩根ˋ流ˋ与ˋ调试ˋ相结合时,最好这样做:

代码语言:javascript
复制
app.use(morgan('combined', { stream: { write: msg => info(msg.trimEnd()) } }));

原因是:在调用stream.write(...)函数时,morgan在msg的末尾添加了一个新行。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42009672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档