Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么我会得到';超过最大调用堆栈大小';尝试创建自定义记录器时出错(Winston/NodeJS)_Node.js_Stack Overflow_Winston - Fatal编程技术网

Node.js 为什么我会得到';超过最大调用堆栈大小';尝试创建自定义记录器时出错(Winston/NodeJS)

Node.js 为什么我会得到';超过最大调用堆栈大小';尝试创建自定义记录器时出错(Winston/NodeJS),node.js,stack-overflow,winston,Node.js,Stack Overflow,Winston,我试图通过创建具有自定义级别的记录器来理解如何使用Winston(NodeJS) logger.js var winston = require('winston'); var custom = { levels: { debug: 0, log : 1, info : 2, ok : 3, warn : 4, cry : 5, fail : 6 }, colors: {

我试图通过创建具有自定义级别的记录器来理解如何使用Winston(NodeJS)

logger.js

  var winston = require('winston');

  var custom = {
    levels: {
      debug: 0,
      log  : 1,
      info : 2,
      ok   : 3,
      warn : 4,
      cry  : 5,
      fail : 6
    },
    colors: {
      debug: 'grey',
      log  : 'white',
      info : 'cyan',
      ok   : 'green',
      yay  : 'blue',
      warn : 'yellow',
      cry  : 'magenta',
      fail : 'red'
    }
  };

  var customLogger = new (winston.Logger)({
      transports: [
          new (winston.transports.Console)({ colorize:true, prettyPrint: true, level: 'fail', timestamp:false })
      ],
      levels:custom.levels, colors:custom.colors
  });

module.exports = customLogger;
//在includes.js中

var logger = require('./lib/logger.js');
exports.logger = logger;
//在app.js中

var logger = require('includes').logger
logger.cry("Wah Wah Wah");
但每次我尝试包含自定义记录器并使用它时,我都会得到:

 RangeError: Maximum call stack size exceeded

我做错了什么?

我马上想到的一件事是直接在app.js中包含logger.js,而不是通过includes.js


我很想提供更多帮助,但是对于那些位置的文件,除了你说的以外,没有其他事情可以做。据我所知,你的应用程序根本不应该工作。

你如何要求你的app.js中的记录器?logger=require('includes')。logger各种文件在哪里?我假设是./app.js和./lib/logger.js,但where is includes.js?/app.js/node_modules/common/lib/logger.js/node_modules/common/includes.js有一个类似的温斯顿问题:感谢您的关注。你认为这是包含文件路径的方式吗?在我调用log之前,它一直工作正常。*然后我就得到了错误。在我通过谷歌发现的一些问题中,他们说当你有一个无限递归调用时,就会发生这个堆栈错误-_-