一、Node.js内置模块介绍
Node.js内置模块也叫核心模块,跟随 Node.js 一起安装。console
模块提供了一个简单的调试控制台,类似于网络浏览器提供的 JavaScript 控制台机制。
二、Node.js内置模块中文官方文档
core核心模块
三、核心模块 - console控制台
• 控制台中输出的内容,通过不同的颜色标识不同的变量类型
• 控制台中可以一次输出多个变量, 多个变量之间,用逗号分隔
• 官方文档:http://nodejs.cn/api/console.html
四、测试小案例1
通过如上图案例,我们测试出,字符串和数字打印输出的结果的颜色是不一样的,这和我们WEB浏览器端是一样的,都是有颜色区分的。
五、测试小案例2
通过如上图案例,我们定义了一个obj对象,然后我们直接再node端打印输出,发现和WEB浏览器端不一样,WEB浏览器端有下拉三角的折叠效果,而Node端没有,Node端是将所有的数据直接打印输出再终端,而如果我们为了方便观看可以打印成表格的形式,通过console.table()方式进行打印。
六、测试案例 — console.time 和 console.timeEnd
通过如上案例,我们使用console.time()和console.timeEnd()方法给for和while循环进行计时测试,发现,while循环的执行效率要高于for循环的执行效率。
七、核心模块 - process进程
• process 提供了有关当前 Node.js 进程的信息
那么什么是进程呢?这一个名词好像我们似曾相识,好像在哪里见过,我们再运行一个应用程序时,会经常遇到未响应卡崩溃的情况,此时我们经常使用快捷键ctrl+alt+.(点),打开任务管理器,然后找到该未响应的进程,然后进行关闭。那么进程呢,就是我们正在运行的程序。
• process 是全局变量,使用时无需 require 引入
• 官方文档:http://nodejs.cn/api/process.html
process 是全局变量,使用时无需 require 引入,也可以引入,但是要保证引入正确。
process 对象提供有关当前 Node.js 进程的信息并对其进行控制。 虽然它作为全局可用,
但是建议通过 require 或 import 显式地访问它
const process = require('process');
import process from 'process';
示例1:
<script>
//导入process模块
const process = require('process');
//打印process所有内容
console.log(process);
//打印node的版本号
console.log(process.version);//v16.13.1
//打印arch,操作系统架构
console.log(process.arch);//x64
//输出操作系统平台
console.log(process.platform); //platform: 'win32'
//输出当前工作目录 cwd = current working directory
console.log(process.cwd());//E:\node_demo
//环境变量
console.log(process.env);
//自定义环境变量,就是我们env环境变量中没有该属性的,我们选择属性,然后给他赋予一个值
// 相当于自己定义了一个属性
process.env.NODE_ENV = 'develop';
console.log(process.env);
</script>
示例2:获取进程编号
示例3:再交互模式下打印进程编号
先使用node命令进入交互模式,这是我们会再任务管理器中出现node.exe这个进程,然后输入console.log(process.pid),可以得到pid进程编号,当我们使用命令.exit或者按下2次ctrl+c,退出交互模式后,该node.exe进程将消失不存在。当再次进入交互模式时,再次产生新的node.exe进程和pid进程编号等信息。
八、核心模块 - path路径
• path 模块提供了有关路径操作的函数
• 当前目录 ./
• 上一级目录 ../
• 使用之前,需要通过 require 引入
• 官方文档:http://nodejs.cn/api/path.html
示例1:引入path模块
//引入path模块
const path = require('path')
示例2:获取当前文件所在的路径方法1(不包括文件名)
//获取当前文件所在的路径方法1
console.log(process.cwd());//E:\node_demo
示例3:获取当前文件所在的路径方法2(不包括文件名)
//获取当前文件所在的路径方法2,dir = directory
console.log(__dirname);//E:\node_demo 获取当前文件所在的路径(不包括文件名)
示例4:获取当前文件所在的完整路径(包括文件名)
console.log(__filename);//E:\node_demo\path.js 获取当前文件所在的完整路径(包括文件名)
示例5:获取文件的拓展名(后缀名)
//获取文件的拓展名
console.log(path.extname(__filename));//.js
示例6:获取路径中的目录部分(没有文件部分)
// 获取路径中的目录部分
console.log(path.dirname(__filename));//E:\node_demo
示例7:获取路径中的文件名(只获取文件的名字,不获取文件的所在目录位置信息)
// 获取路径中的文件名
console.log(path.basename(__filename));//path.js
示例8:通过path.join()方法可以设置2个参数,例:文件的目录和..,表示获取该目录的上一级目录
const t = path.join(__filename,'..');//E:\node_demo
console.log(t);
示例9:通过path.join()方法将多个路径合并起来
//将多个路径合并起来
const a = path.join('E:/','a','b','c.png')
console.log(a);//E:\a\b\c.png
九、核心模块 - fs文件系统
• fs (file system) 提供了文件操作的 API
• 文件操作(.txt .word .md等等)
• 目录操作(文件夹,土豆马铃薯,叫法不一样,但是指的是一个意思)
• 使用之前,需要通过 require 引入
• 官方文档:http://nodejs.cn/api/fs.html
目录操作示例1:文件的清空写入操作
//示例:文件的写操作
//引入fs模块
const fs = require('fs')
//清空写入
//语法:fs.write('文件路径','写入的内容',回调函数)
fs.writeFile(__dirname+'/1.txt','这是写入的内容',(err) => {
//判断以下,当路径错误,或者文件不存在的时候,抛出err错误
if (err) throw err
//否则就打印一句话
console.log('写入成功')
})
目录操作示例2:文件的读取操作
//读取文件
//引入fs模块
const fs = require('fs')
//引入path模块
const path = require('path')
// var filename = __dirname + '/1.txt'
var filename = path.join(__dirname,'1.txt')
//语法:fs.readFile('文件路径',回调函数)
fs.readFile(filename,(err,data) => {
//err表示找不到该文件,无法读取,抛出错误
if (err) throw err
//如果能找到,就读取该文件,并打印输出文件中的内容
//data是二进制数据,默认输出时,是以十六进制的方式进行展示
//要想展示原有文件的样式,需要进行toString()方法
console.log(data.toString());
})
目录操作示例3:文件的删除操作
//引入fs模块
const fs = require('fs')
//语法:fs.unlink('文件的路径',回调函数)
fs.unlink(__dirname+'/1.txt',(err) => {
if (err) throw err
console.log('文件删除成功');
})
目录操作示例4:文件的追加写入
//引入fs模块
const fs = require('fs')
//追加写入
//语法:fs.appendFile('文件路径','写入的内容',回调函数)
fs.appendFile(__dirname+'/1.txt','今天天气真好\n',(err) => {
if (err) throw err
console.log('添加成功');
})