控制util.inspect在util.format调用时的行为



http://nodejs.org/api/util.html#util_util_format_format

util.format('%s:%s', 'foo'); // 'foo:%s'

如果参数多于占位符,则额外的参数将转换为具有util.inspect()的字符串,并且这些字符串被连接起来,由空格分隔。

我使用这个util.format,但我想控制它自动调用的util.inspect的行为。具体来说,将depth:null选项传递给它。

有办法做到吗?


Monkey修补util.inspect不起作用,因为util.format内部仅称其为inspect

function (f) {
  if (typeof f !== 'string') {
    var objects = [];
    for (var i = 0; i < arguments.length; i++) {
      objects.push(inspect(arguments[i]));
    ...

我想在将元素输入util.format 之前,我只需要手动util.inspect元素

for(var k in str)
    if (typeof str[k] !== 'string')
        str[k] = util.inspect(str[k], {depth:null})
util.format.apply(null, str);

最新更新