(9)Node.js 内置模块

一、Node.js内置模块介绍

Node.js内置模块也叫核心模块,跟随 Node.js 一起安装。console 模块提供了一个简单的调试控制台,类似于网络浏览器提供的 JavaScript 控制台机制。

二、Node.js内置模块中文官方文档

http://nodejs.cn/api/

                                         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('添加成功');
})

 

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泽哥ins

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值