当util.format调用utilin时,控制util.inspect的行为

时间:2014-10-30 23:12:00

标签: node.js

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-patching 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]));
    ...

1 个答案:

答案 0 :(得分:0)

我想我必须先手动util.inspect元素,然后再将它们投入util.format

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