javascript - 更改 REPL 中 Node 对象的表示

标签 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 = ["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;
}

你有什么建议吗?

最佳答案

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

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

关于javascript - 更改 REPL 中 Node 对象的表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50585027/

相关文章:

javascript - List返回Json数据有Error

php - 等待socket_write完成后再重新写入

javascript - 如何从 HH :MM time string? 中减去小时和分钟

javascript - 在 JavaScript 中转换日期/时间格式

javascript - 使用正斜杠访问 JSON 键 NodeJS

javascript - 选择插件: Change the background of options depending on its value

javascript - Discord.JS |从用户消息中删除嵌入的功能或方法?

javascript - WebStorm Node.Js Sequelize 模型类型提示

javascript - AWSBox 上 Node bcrypt 的 ELF header 无效

javascript - 时刻: Deprecation warning: moment construction falls back to js Date