首页 > 解决方案 > 在 REPL 中更改节点对象的表示

问题描述

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

例子:

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

现在假设您有许多矩对象“m1”、“m2”……它们被传播到一个数据结构中,如 l = [“hello”、m1、“world”、m2、m3……]。阅读列表“l”变得困难。

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

它应该与此类似,但我不知道如何使它正确。

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

你有什么建议吗?

标签: javascriptnode.jsmomentjsread-eval-print-loop

解决方案


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

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;
}

推荐阅读