改变REPL中节点对象的表示

时间:2018-05-29 12:57:51

标签: javascript node.js momentjs read-eval-print-loop

我想让“时刻”对象表示更短,因为我有一个包含其中许多的数据结构,我希望我能使它的表示更紧凑。

示例:

node-repl>  d = new Date()
2018-05-29T12:50:12.111Z 
node-repl> m = moment(d)
=> VERY LONG THING IN OUTPUT

现在想象你有很多时刻对象“m1”,“m2”......它们被传播到数据结构中,l = [“你好”,m1,“世界”,m2,m3 ...]。 阅读清单“l”变得困难。

我希望在REPL中默认打印“时刻”对象为“时刻DD-MM-YYYY”。

应该是类似的东西,但我不知道如何做对。

moment.prototype.toString = function() {
   var dd = this.format("DD-MM-YYYY");
   var out = "moment-" + dd;
   return out;
}

你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,我不明白它是如何工作的所有功能,但它确实有效。

moment.prototype[util.inspect.custom] = function(depth, options) {
 var tmp = this.format("DD-MM-YYYY");
 tmp = `moment<${tmp}>`;
 var out = options.stylize(tmp, 'special');
 return out;
}