有什么办法可以让util.inspect的string不换行
如果需要inspect的对象比较大,最终在输出的对象会换行,有没有办法让结果都在一行(去掉换行符?)显示?
8 回复
有 options
可以自定义
http://nodejs.org/api/util.html#util_util_inspect_object_options
我没有找到~ 有点怀疑是showHidden ,但是true,false都试过了,还是不行。 我用的参数是 require(‘util’).inspect(object, { showHidden: false, depth: 3 })
自定义inspect
方法,试试
customInspect 那就要自己写string,主要的是我要输出的那个object是第三方库里面的。没法使用customInspect
require('util').inspect({p:process}).replace(/\n/g, '')
这样可以的~
@cfddream options 里面的参数也不能够自定义的 util 模块做最后拼接的时候会调这个函数
function reduceToSingleString(output, base, braces) {
var length = output.reduce(function(prev, cur) {
return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1;
}, 0);
if (length > 60) {
return braces[0] +
(base === '' ? '' : base + '\n ') +
' ' +
output.join(',\n ') +
' ' +
braces[1];
}
return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
}
结果默认只要字符串长度大于60的都加上换行缩进 这就真蛋碎了,看来只能用正则替换,但又不太想这么干,内核帮你加一次你又删一次…… 就不知道为啥不在参数里面再给个类似 JSON.stringify 的格式化选项……
inspect本来就是输出方便人看的。。。