Node.js控制台彩色输出的方法与原理实例详解_node.js

来源:脚本之家  责任编辑:小易  

试了一下代码第一次输出Array[1]刷新后输出[Object]但这两个都是表示数组,用[]括号括住,就是数组的表现形式如果是对象的话应该是,Object而不是[Object]至于为什么输出[Object],因为myarr内只有一个元素,而这个元素是一个对象,如果再添加几个元素进去,例如我添加了一个1,输出就变成[Object,1]www.zgxue.com防采集请勿采集本网。

前言

我们都知道,在nodejs环境下使用普通的console.log,console.error,console.info输出都是不会有颜色的,如果你不知道,那你现在知道啦😏。在这种情况下,如果我们需要彩色输出,则通常通过chalk这个node模块来实现,

Console.Title=\"131;设置控制台窗口的标题 Console.ForegroundColor=ConsoleColor.Red;设置字体颜色为红色 Console.BackgroundColor=ConsoleColor.Green;设置黑屏为绿屏,即背景颜色 你要函数的

chalk使用方法

nodeName 属性:节点的名称,是只读的。1.元素节点的 nodeName 与标签名相同 2.属性节点的 nodeName 是属性的名称 这样就很好理解为什么输出#text了 因为首尾子节点都是空白节点

基本用法

第一步你要选择边改变看模式 第二步:正确打开编辑器上的浏览器 第三步:打开自带的控制台 视图>显示视图>其他>控制台 第四步:如下图,一定要将打开控制台和切换控制台勾选边改变看模式 这下就

const chalk = require('chalk')console.log(chalk.red.bold.bgWhite('Leo\'s Blog'))

private static string Str=\"□卐□卐□;static void Main(string[]args) { foreach(char c in Str) { if(c='☆') { Console.ForegroundColor=ConsoleColor.Red;} else { Console.

上面代码执行的结果如下,Leo's Blog 加粗,字体颜色是红色,背景颜色是白色。

Process p=new Process();p.StartInfo.FileName=\";控制台程序的路径 p.StartInfo.RedirectStandardOutput=true;p.StartInfo.RedirectStandardInput=true;p.Start();p.StandardInput.WriteLine(\"

注意:背景颜色要在 bg 后面加上具体的颜色,颜色的第一个字母大写。

在 HTML 中支持 RGB 颜色,在这里同样支持,而且是支持所有 HTML 中支持的颜色,如十六进制颜色。这里仅仅说明十六进制颜色。

下面的代码会和上面的代码实现相同的效果。

const chalk = require('chalk')console.log(chalk.rgb(255,0,0).bold.bgRgb(255,255,255)('Leo\'s Blog'))

使用模板

该模块有一个很方便的用法就是支持模板输出,也就是说,不管在字符串中的哪个位置想改变输出的颜色,都是可以的。

const chalk = require('chalk')console.log(chalk`{red.bold.bgWhite Leo\'s Blog}`)

当然,也可以使用 RGB 颜色值。

const chalk = require('chalk')console.log(chalk`{rgb(255,0,0).bold.bgRgb(255,255,255) Leo\'s Blog}`)

四种方式的输出

常见形式

我们经常看到的警告、错误提示就是这么来的

const chalk = require('chalk')const error = chalk.bold.red;const warning = chalk.keyword('orange')console.log(error('Error!'))console.log(warning('Warning!'))

错误和警告提示

常用API

样式 reset - 样式重置 bold - 加粗 dim - 浅高亮 italic - 斜体 underline - 下划线 inverse- 反转前景和背景色 hidden - 隐藏内容 strikethrough - 删除线 visible- 显示chalk level > 0 的内容

前景色关键字(非全支持) black red green yellow blue magenta cyan white blackBright (alias: gray, grey) redBright greenBright yellowBright blueBright magentaBright cyanBright whiteBright

背景色关键字(非全支持) bgBlack bgRed bgGreen bgYellow bgBlue bgMagenta bgCyan bgWhite bgBlackBright (alias: bgGray, bgGrey) bgRedBright bgGreenBright bgYellowBright bgBlueBright bgMagentaBright bgCyanBright bgWhiteBright

更多API可以看看官方文档

chalk让控制台输出样式多变的原理

其原理最重要的一个知识点就是ANSI Escape code.

ASCII编码中有些字符是不能用来在终端中打印显示的,比如'\a' 0x7代表响铃,'\n' 0x0A代表换行,这些字符被称为控制符。

而其中的一个控制符 '\e' 0x1B比较特殊,这个字符代表 ESC ,即键盘上 ESC 按键的作用。ESC 是单词 escape 的缩写,即逃逸的意思。文本中出现这个控制符,表示接下来的字符是ANSI Escape code编码。

而ANSI Escape code编码中有专门控制字符颜色的控制符,例如:\e[31;44;4;1m

其意义如下: \e 代表开始ANSI Escape code [ 代表转义序列开始符 CSI,Control Sequence Introducer 31;44;4;1 代表以; 分隔的文本样式控制符,其中 31 代表文本前景色为红色,44代表背景为蓝色,4代表下划线,1代表加粗 m 代表结束控制符序列

我们可以在终端中输入如下命令:

echo -e "\e[37;44;4;1mLEO\e[0m"

会有如下输出,带下划线的LEO字样:

echo-leo

因为 \e 控制符的16进制码为 0x1B , 8 进制码为 033 ,也可以用以下写法达到同样效果:

echo -e "\e[37;44;4;1mLEO\e[0m"echo -e "\x1b[37;44;4;1mLEO\x1b[0m"echo -e "\x1B[37;44;4;1mLEO\x1B[0m"echo -e "\033[37;44;4;1mLEO\033[0m"

echo

通过维基百科,我查到有以下参数控制符:

代码 作用 备注
0 重置/正常 关闭所有属性。
1 粗体或增加强度
2 弱化(降低强度) 未广泛支持。
3 斜体 未广泛支持。有时视为反相显示。
4 下划线
5 缓慢闪烁 低于每分钟150次。
6 快速闪烁 MS-DOS ANSI.SYS;每分钟150以上;未广泛支持。
7 反显 前景色与背景色交换。
8 隐藏 未广泛支持。
9 划除 字符清晰,但标记为删除。未广泛支持。
10 主要(默认)字体
11–19 替代字体 选择替代字体{\displaystyle n-10}{\displaystyle n-10}。
20 尖角体 几乎无支持。
21 关闭粗体或双下划线 关闭粗体未广泛支持;双下划线几乎无支持。
22 正常颜色或强度 不强不弱。
23 非斜体、非尖角体
24 关闭下划线 去掉单双下划线。
25 关闭闪烁
27 关闭反显
28 关闭隐藏
29 关闭划除
30–37 设置前景色 参见下面的颜色表。
38 设置前景色 下一个参数是5;n或2;r;g;b,见下。
39 默认前景色 由具体实现定义(按照标准)。
40–47 设置背景色 参见下面的颜色表。
48 设置背景色 下一个参数是5;n或2;r;g;b,见下。
49 默认背景色 由具体实现定义(按照标准)。
51 Framed
52 Encircled
53 上划线
54 Not framed or encircled
55 关闭上划线
60 表意文字下划线或右边线 几乎无支持。
61 表意文字双下划线或双右边线
62 表意文字上划线或左边线
63 表意文字双上划线或双左边线
64 表意文字着重标志
65 表意文字属性关闭 重置60–64的所有效果。
90–97 设置明亮的前景色 aixterm(非标准)。
100–107 设置明亮的背景色 aixterm(非标准)。

颜色编码表如下:

名称 前景色代码 背景色代码
30 40
31 41
绿 32 42
33 43
34 44
品红 35 45
36 46
37 47
亮黑(灰) 90 100
亮红 91 101
亮绿 92 102
亮黄 93 103
亮蓝 94 104
亮品红 95 105
亮青 96 106
亮白 97 107

示例:

\e[31m 红色\e[36;5;1;4m 缓慢闪烁的青色加粗带下划线字体

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对真格学网的支持。

var test=document.getElementById("#divone")console.log("test");可以百度:HTML5学堂,里面有关于JavaScript的详细解释和其他用法内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • node.js console控制台简单用法分析
  • node.js中koa2在控制台输出请求日志的方法示例
  • node.js操作mongodb的实例详解
  • node.js报错:cannot find module ''ejs''的解决办法
  • nodejs模块简单用法示例
  • nodejs学习笔记之入门篇
  • 深入理解node中的buffer模块
  • node.js 的 gc 机制详解
  • 通过nodejs搭建网站简单实现注册登录流程
  • node前端模板引擎jade之标签的基本写法
  • node-webkit打包成exe文件被360误报木马的解决方法
  • nodejs实现基于连接池连接mysql的方法示例
  • js控制台输出console怎么输出html
  • JS代码是怎样直接在控制台输出的
  • 在控制台窗口中输出颜色方阵
  • 用js在控制台里显示九九乘法表怎么做
  • C#控制台程序怎么实现输出彩色字体?
  • js 控制台中打印出#text是 什么意思
  • 为什么HBuilder的控制台不显示来自console.log的输出
  • C# 如何改变控制台输出字体颜色
  • C#如何获得另一个控制台应用程序的输出
  • 我现在用node js写一个客户端程序,然后我加载本地的html后,发现CSS样式没有加载进来,
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全基础知识javascript类库表单特效广告代码网页特效黑客性质javascript技巧domnode.jsjs其它首页javascriptnode.jsnode.js console控制台简单用法分析node.js中koa2在控制台输出请求日志的方法示例node.js操作mongodb的实例详解node.js报错:cannot find module ""ejs""的解决办法nodejs模块简单用法示例nodejs学习笔记之入门篇深入理解node中的buffer模块node.js 的 gc 机制详解通过nodejs搭建网站简单实现注册登录流程node前端模板引擎jade之标签的基本写法node-webkit打包成exe文件被360误报木马的解决方法nodejs实现基于连接池连接mysql的方法示例一行命令搞定node.js 版本升级卸载安装node.js与npm过程详解node.js(安装,启动,测试)yarn的安装与使用详细介绍node.js+ajax实现获取http服务器nodejs中调用系统命令、shell脚本nodejs npm install全局安装和本nodejs基本语法和类型nodejs学习笔记之fs文件模块nodejs文件操作模块fs(file sys独立部署小程序基于nodejs的服务器过程详用node.js写一个jenkins发版脚本浅谈nodejs观察者模式解决node.js使用mysql出现connect econnrnodejs入门教程一:概念与用法简介详解nodejs 文本操作模块-fs模块(四)linux centos7.2下安装nodejs&npm配置全局node.js中事件轮询(event loop)的解析在linux系统中搭建node.js开发环境的简单nodejs基础api搭建服务器详细过程记录
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved