Node.js 学习笔记一(控制台输出相关操作 console、readline)

在Node.js学习历程中随手记下来的一些基础练习与操作。。。

文章目录

        • 1️⃣使用Node代码实现一个简单的服务器,
        • 2️⃣查看nodejs中的模块:
        • 3️⃣控制台日志信息输出:
        • 4️⃣输出错误与警告:
        • 5️⃣输出位置重定(生成error.log文件)
        • 6️⃣输出控制键操作
        • 7️⃣用readline模块模拟控制台读取用户输入
        • 8️⃣在控制台使用断言工具
        • 9️⃣在控制台输出表格

1️⃣使用Node代码实现一个简单的服务器,

通过Node命令运行该程序,然后在浏览器地址栏输入定义好的服务器地址 http://127.0.0.1:8888/ 打开页面

var http = require('http');

http.createServer(function (request, response) {
    // 发送 HTTP 头部 
    // HTTP 状态值: 200 : OK
    // 内容类型: text/plain
    response.writeHead(200, {'Content-Type': 'text/plain'});
    // 发送响应数据 "Hello World"
    response.end('Hello World!\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

Node.js 学习笔记一(控制台输出相关操作 console、readline)_第1张图片

2️⃣查看nodejs中的模块:

通过下面的代码可以简单查看你的node.js环境下有那些模块

const m = require('module');

console.log("require('module'):\n",m);

Node.js 学习笔记一(控制台输出相关操作 console、readline)_第2张图片

3️⃣控制台日志信息输出:

console.log()
console.info()
两个方法的输出结果是完全一致的。(类似其他编程语言中的print()


4️⃣输出错误与警告:

console.error()
console.warn()

示例:(输出错误和警告的方法function(err,data){}

var fs = require('fs');
var file = 'new_file-none.html';
var encoding = 'UTF-8';

fs.readFile(file,encoding,function(err,data){
	if(err){
		// console.log(err);
		console.error("error输出:\n %s",err);  //%s 指定输出字符串格式
		console.warn("warn输出:\n %s",err);
	}else{
		console.log(data);
	}
});

运行效果如下图:
Node.js 学习笔记一(控制台输出相关操作 console、readline)_第3张图片

-

5️⃣输出位置重定(生成error.log文件)

执行node命令可以指定命令的标准错误输出流形式,默认是控制台,也可以为文件重定向。
即输入如下命令即可将错误日志文件(error.log)输出到本地
node newfile.js 2> error.log


6️⃣输出控制键操作

应用程序模拟组合控制键操作(如复制、粘贴、撤销等)来代替用户完成一些键盘操作功能。在Node.js平台下,通过readline模块的write()方法实现该功能。
例(对控制台进行撤销操作的功能):

var readline = require('readline');
var rl = readline.createInterface({  //初始化rl对象
	input:process.stdin,
	output:process.stdout
});

rl.write('Delete this!wait for 3seconds...'); //在控制台输出文字
var timeoutlength = 3*1000;
var timeout = setTimeout(function(){
	//向控制台模拟输出撤销操作快捷键并删除之前的写入文字。第二个参数为一个JSON对象设定控制键Ctrl+U
	rl.write(null,{ctrl:true,name:'u'});
},timeoutlength);

一些常用快捷键操作:
Ctrl + C 为nodejs中的退出快捷键
Ctrl + U为撤销
clear 或 cls 清空界面
tap键在文件下切换选择文件


7️⃣用readline模块模拟控制台读取用户输入

示例代码:

var readline = require('readline');
var rl = readline.createInterface({  //初始化rl对象
	input:process.stdin,
	output:process.stdout
});

rl.setPrompt("NodeJS> ");  //定义模拟控制台命令提示符,调用时将写入 output 的提示。
rl.prompt();   //初始化模拟控制台,开启 input 流
rl.on('line', function(line){  //激活readline模块的line事件,单行数据的读取输出
	switch(line.trim()){    //trim()为去除前后空白字符
		case 'name':
		console.log("Lin Wit");
		break;
		
		case 'code':
		console.log("Node.js");
		break;
		
		case 'year':
		console.log(2022);
		break;
		
		default:
		console.log(line.trim()+" :don't this case!");
		break;
	}
	rl.prompt();  //用于保持在接收完一次输出后,继续模拟控制台命令行
}).on('close',function(){    //激活readline模块的close事件,进程结束时触发事件
	console.log('###byebye! process end###');
	process.exit(0);  //退出进程
}).on('pause',()=>{   //激活readline模块的pause事件,输出流暂停时触发事件
	console.log("######pause######");
})

运行效果如下图:
Node.js 学习笔记一(控制台输出相关操作 console、readline)_第4张图片

8️⃣在控制台使用断言工具

console.assert()方法实现断言操作,断言即当逻辑表达式为false时输出错误提示信息。
语法:console.assert(value[, …message])

console.assert(true, 'does nothing');
//无输出
console.assert(false, 'Whoops %s work', 'didn\'t');
//输出:Assertion failed: Whoops didn't work
console.assert();
//输出:Assertion failed
console.assert(1==3, "This 1==3 Error!");
//输出:Assertion failed: This 1==3 Error!

9️⃣在控制台输出表格

console.table()方法将数组形式的信息以表格的形式输出
语法:console.table(tabularData[, properties])

var arrTable = {
	A: {no:"1",name:"LinWit"},
	B: {no:"2",name:"zhangsan"},
	C: {no:"3",name:"lisi"}
};
console.table(arrTable);
console.table(arrTable,["name"]); //仅将JSON格式数据中的列(name)以表格形式输出

console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);

运行效果如下图:
Node.js 学习笔记一(控制台输出相关操作 console、readline)_第5张图片

你可能感兴趣的:(网页制作,Node.js,node.js,学习,javascript,console)