• 除了使用自己写的本地模块以外,NodeJS可以使用另外两种类型的模块,分别是NodeJS官方提供的核心模块第三方提供的模块

NodeJS官方提供的核心模块

NodeJS平台自带的一套基本的功能模块,也被称为NodeJS平台的API

// 使用模块全局的 require() 方法引入 fs 模块
const fs = require('fs')

// 使用 fs 模块导出的 readFile() 方法读取 data.json 文件中的内容
fs.readFile('./data.json', {encoding: 'utf8', flag: 'r'}, (err, data) => {})
  • .readFire( )方法读取 data.json 文件中的内容, 
  •   './data.json' 是要读取的文件,
  • encoding: 'utf8',是字符编码,
  • flag: 'r',是读取的方式,
  •  读取成功时,err 为 null,data 为读取到的数据
     读取失败时,err 为错误对象,data 为 undefined
  • (err, data),err是检查文件是否存在,如果不存在打印undifined,并终止进程运行,
  • data是文件存在并继续访问的数据,
使用fs.writeFile()方法给data文件里传数据(‘写’文件要在‘读’文件里追加)
 1 const fs = require('fs');
 2
 3 fs.readFile('data.json', { encoding: 'utf8', flag: 'r' }, (err, data) => {
 4
 5     // 给data文件里传值
 6
 7     // 将json格式的字符串转换成js对象(array,object)
 8     data = JSON.parse(data)
 9     console.log(typeof data);  //string
10     console.log(data instanceof Array)  //true
11     //   写内容
12     const student = {
13         fullNmae: 'zzj',
14         age: 18,
15         hobby: '学习',
16         gender: '女'
17     }
18     // 向data里面追加student
19     data.push(student);
20     // 将js对象转换成json对象
21      JSON.stringify(data)
22     // 使用fs.writeFile()方法给data文件里传数据
23     fs.writeFile('data.json',JSON.stringify(data ,null,4), (err) => {
24         if (err) {
25             console.log('失败')
26             return;
27         }
28         console.log('成功')
29     })
30 })
JSON.stringify(data ,null,4)  
null:表示函数,不需要函数则写null,
4:表示4个字符间距(效果如下图)


os操作系统

1 const os = require('os')
2 console.log(os.freemem()/1024/1024/1024)
3 // 获取家目录
4 console.log(os.homedir())
5 // 获取CPU架构
6 console.log(os.arch())
7 // 获取几核
8 console.log(os.cpus())       

第三方开发者提供的模块

第三方模块是由NodeJS社区或第三方个人开发的功能模块,这些功能模块以软件包的形式存在。被发布在npmjs注册表中。npmjs是一个注册中心,所有软件包的信息都会被记录到该注册中的数据库中,我们可以来到npmjs官方站点,根据关键字搜索自己需要的软件包

点击软件包的名字会跳转到软件包的详情页面:

我们需要的软件包已经找到了,但是我们怎么样去使用软件包提供的功能呢?

我们可以通过NPM(Node Package Manager)使用软件包,NPM是NodeJS的包管理器,它提供了一系列的命令,可以帮我们安装、删除、更新、搜索以及创建自己的软件包。

由于只有软件包才是使用其他的软件包,因此我们必须要先创建自己的软件包,然后才能在自己的软件包中使用其他的软件包。

我们怎么样去创建自己的软件包呢?答案是通过NPM提供的一系列命令创建自己的软件包。

1、 在合适的目录下,打开命令窗口,创建软件包的目录,并切换到该目录下:

mkdir lodashdemo && cd loadshdemo                                                                              

2、 使用NPM提供的命令,初始化软件包,你需要回答几个问题,回答完毕之后会生成一个package.json文件,该文件记录了软件包的所有信息。

npm init                                                                                

3、如果你只是想把创建的包作为一个本地项目,并不想将它发布到npmjs注册中心(不想让别人使用你的软件包),你需要移除package.json文件中的main字段,然后添加private字段,并指定其值为true,表示这是私有的软件包。修改之后的结果如下:

{
  "name": "lodashdemo",
  "version": "1.0.0",
  "description": "讲解 NPM 包管理器的使用方法",
  "private": true,
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "demo",
    "lodash",
    "陈老师"
  ],
  "author": "陈老师",
  "license": "MIT"
}

3、 使用NPM的命令安装第三方模块,此步骤需要访问网络。

npm install lodash --save-prod                                                                

  • install也可以简写成i
  •  --save-prod 将 lodash 模块作为当前软件包的产品依赖,并将依赖信息记录到package.json文件中的dependencies字段中
  • 此外,初次执行install命令时,还会生成一个package-lock.json文件,该文件记录了当前软件包所依赖的其他软件包的详细信息,用于将软件包锁定到特定的版本。
  • 安装完成之后,当前项目的目录下会生成一个node_modules/目录,目录中保存就是我们下载后的软件包。

4、 创建自己的项目文件,例如,app.js文件,导入第三方模块,即可使用模块提供的功能

 1 // 导入 lodash 模块
 2 const _ = require('lodash');
 3
 4 // 使用 lodash 模块提供的方法
 5 const add = _.add(12, 56)
 6 console.log(add)
 7
 8 const subtract = _.subtract(8, 4)
 9 console.log(subtract)
10
11 const multiply = _.multiply(8, 4)
12 console.log(multiply)
12-24 20:18