- 除了使用自己写的本地模块以外,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)