请选择 进入手机版 | 继续访问电脑版
游客您好
第三方账号登陆
  • 点击联系客服

    在线时间:8:00-16:00

    客服电话

    17712677918

    电子邮件

    857020071@qq.com
  • 扫描二维码

    关注微信公众号

推荐阅读
sxadmin 管理员
江苏省苏州市 | 互联网
  • 关注0
  • 粉丝0
  • 帖子151
热议话题
Node.js 简介
2021-08-28 0
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目
精选帖子

使用 Node.js 输出到命令行

[复制链接]
sxadmin 发表于 2021-8-28 18:42:10 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
使用控制台模块的基础输出
Node.js 提供了 console 模块,该模块提供了大量非常有用的与命令行交互的方法。

它基本上与浏览器中的 console 对象相同。

最基础、最常用的方法是 console.log(),该方法会打印传入到控制台的字符串。

如果传入对象,则它会呈现为字符串。

可以传入多个变量到 console.log,例如:

const x = 'x'
const y = 'y'
console.log(x, y)
Node.js 会全部打印出来。

也可以通过传入变量和格式说明符来格式化用语。

例如:

console.log('我的%s已经%d岁', '猫', 2)
%s 会格式化变量为字符串
%d 会格式化变量为数字
%i 会格式化变量为其整数部分
%o 会格式化变量为对象
例如:

console.log('%o', Number)
清空控制台
console.clear() 会清除控制台(其行为可能取决于所使用的控制台)。

元素计数
console.count() 是一个便利的方法。

使用以下代码:

const x = 1
const y = 2
const z = 3
console.count(
  'x 的值为 ' + x + ' 且已经检查了几次?'
)
console.count(
  'x 的值为 ' + x + ' 且已经检查了几次?'
)
console.count(
  'y 的值为 ' + y + ' 且已经检查了几次?'
)
count 方法会对打印的字符串的次数进行计数,并在其旁边打印计数:

数苹果和橙子:

const oranges = ['橙子', '橙子']
const apples = ['苹果']
oranges.forEach(fruit => {
  console.count(fruit)
})
apples.forEach(fruit => {
  console.count(fruit)
})
打印堆栈踪迹
在某些情况下,打印函数的调用堆栈踪迹很有用,可以回答以下问题:如何到达代码的那一部分?

可以使用 console.trace() 实现:

const function2 = () => console.trace()
const function1 = () => function2()
function1()
这会打印堆栈踪迹。 如果在 Node.js REPL 中尝试此操作,则会打印以下内容:

Trace
    at function2 (repl:1:33)
    at function1 (repl:1:25)
    at repl:1:1
    at ContextifyScript.Script.runInThisContext (vm.js:44:33)
    at REPLServer.defaultEval (repl.js:239:29)
    at bound (domain.js:301:14)
    at REPLServer.runBound [as eval] (domain.js:314:12)
    at REPLServer.onLine (repl.js:440:10)
    at emitOne (events.js:120:20)
    at REPLServer.emit (events.js:210:7)
计算耗时
可以使用 time() 和 timeEnd() 轻松地计算函数运行所需的时间:

const doSomething = () => console.log('测试')
const measureDoingSomething = () => {
  console.time('doSomething()')
  //做点事,并测量所需的时间。
  doSomething()
  console.timeEnd('doSomething()')
}
measureDoingSomething()
stdout 和 stderr
console.log 非常适合在控制台中打印消息。 这就是所谓的标准输出(或称为 stdout)。

console.error 会打印到 stderr 流。

它不会出现在控制台中,但是会出现在错误日志中。

为输出着色
可以使用转义序列在控制台中为文本的输出着色。 转义序列是一组标识颜色的字符。

例如:

console.log('\x1b[33m%s\x1b[0m', '你好')
可以在 Node.js REPL 中进行尝试,它会打印黄色的 你好。

当然,这是执行此操作的底层方法。 为控制台输出着色的最简单方法是使用库。 Chalk 是一个这样的库,除了为其着色外,它还有助于其他样式的设置(例如使文本变为粗体、斜体或带下划线)。

可以使用 npm install chalk 进行安装,然后就可以使用它:

const chalk = require('chalk')
console.log(chalk.yellow('你好'))
与尝试记住转义代码相比,使用 chalk.yellow 方便得多,并且代码更具可读性。

更多的用法示例,详见上面的项目链接。

创建进度条
Progress 是一个很棒的软件包,可在控制台中创建进度条。 使用 npm install progress 进行安装。

以下代码段会创建一个 10 步的进度条,每 100 毫秒完成一步。 当进度条结束时,则清除定时器:

const ProgressBar = require('progress')

const bar = new ProgressBar(':bar', { total: 10 })
const timer = setInterval(() => {
  bar.tick()
  if (bar.complete) {
    clearInterval(timer)
  }
}, 100)





上一篇:从命令行运行 Node.js 脚本
下一篇:软件行业的发展前景好吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

icitu.com 信息谷-icit软硬件产品营销与行业智慧化解决方案实施供需对接空间,信息人家园-信息人之间互助互惠互利的资源整合空间,icit人团结起来帮助人们沟通与建设,icit unite to help people communicating&constructing。
0512-68181818
关注我们
  • 访问移动手机版
  • 官方微信公众号

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc. 优康设计 ( 苏ICP备10066271号-2 )|网站地图