学习Node.js的第一天
1. 了解node.js
1.1 什么是node.js
Node.js:一个采用chrome V8 引擎来跑的js代码环境。
1.2 Node.js的学习内容
它只是一个环境,不是一门语言 模块系统。 NPM包管理工具
2. 下载安装node.js
2.1 官网下载地址:[node.js下载](https://nodejs.org/en/)
版本说明:LTS:长期稳定版(LongTerm Support).建议下载14.xx.x LTS
2.2 安装
1) 双击安装文件开始安装(不同系统选择对应的安装文件)
2) 傻瓜式安装,一路 'next' 即可
3)注意点:不要修改安装路径,默认就好
2.3 检查是否安装成功
1)打开cmd小窗口-快捷键 : window + v
2)在窗口里面输入命令:node -v
3) 安装 成功 之后会显示版本号
3. 在node环境下运行第一个js代码
3.1 准备一个js文件
3.2 给js文件添加一点内容
console.log(1 + 2);
3.3 打开命令行工具,运行这文件 。
输入的命令是 :node 01-第一个js代码.js (当前的目录名)
每天一点小技巧:
快速填写目录名:手动输入目录名的首个或者前几个字母或数字,再按 tap 键自动补齐
4. Node.js和浏览器端的区别
4.1
在node.js端 有ECMAScript + 内置模块。
在node.js中是没有BOM、DOM、window对象的
5. 常用的命令及按键
6. node.js中的模块分类
1)核心模块 (node.js自带的)
源代码[添加链接描述](https://github.com/nodejs/node/tree/master/lib)
2)自定义模块 (自己写的)
相当于我们学习js的自定义函数
3)第三方模块 (别人写的)
相当于别人写好的函数或者库
7. 核心模块
目标:通过学习核心模块fs,掌握核心模块的基本使用方法
文档:
1)😂[添加链接描述](http://nodejs.cn/api/)
2)😂[添加链接描述](http://api.nodejs.cn/)
7.1 核心模块
😊核心模块就是 Node 内置的模块,需要通过唯一的标识名称来进行获取。
每一个核心模块基本上都是暴露了一个对象,里面包含一些方法供我们使用。一般
在加载核心模块的时候,变量(或常量)的起名最好就和核心模块的标识名同名。
//例如:
const path = requirt('path');
7.2 fs模块
fs模块(fs是 FileSystem的简写)是Node.js用来进行文件操作的模块,它属于**核心
模块**。你引入之后就可以直接使用了。
官方手册:[添加链接描述](http://nodejs.cn/api/fs.html)
// 引入模块
const fs = require('fs');
8. fs-readFile-异步格式
8.1 格式
// utf8 : 可选
fs.readFile('文件路径','utf8',function(err,data){
if(err){
console.log(err);
}
console.log(data);
})
说明:
- 参数1:文件路径。 相对路径和绝对路径均可。
- 参数2: 配置项,可选参数,可不写。主要用来配置字符集。一般可设置为'utf8',如果不设置该参数,文件内容会**Buffer形式**返回。
- 参数3: 读取完成后触发的回调函数。这个回调函数在读完文件后自动被nodejs自动调用,并传入 err 和 data
- 如读取成功,回调函数中的两个参数分别是:
- err: null
- data: 文件内容,如果不设置参数2,则返回二进制数据。可以使用 toString() 方法将二进制数据
转为正常字符串
- 如读取失败,回调函数中的两个参数分别是:
- err: 错误对象
- data: undefined
8.2 示例1:读文本内容
//引入模块
const fs = require('fs');
fs.readFile('02.txt','utf8',function (err,data) {
console.log(data);
})
9. fs-readFile-同步格式
9.1格式
:api的名字后面有Sync(async是异步的,sync表示同步的)
:不是通过回调函数来获取值,而是像一个普通的函数调用一样,直接获取返回值
// 引入模块
const fs = require('fs');
// 2.调用
// ajax:异步的JavaScript和xml
// aSync javascript 和 xml
// Sync:同步
// aSync: 异步
const content = fs.readFileSync('02.txt');
console.log(content);
10. fs-writeFile-文件写入
10.1 覆盖写入 writeFile
功能:向指定文件中写入字符串,如果没有该文件则尝试创建该文件。
它是覆盖写入:会把文件中的内容全部删除,再填入新的内容。
// 引入模块
const fs = require('fs');
// fs.writeFile('inio.txt','nihao',(err)=>{
// console.log(err);
// })
// 文件的写入 :覆盖写入writeFile
// 追加写入 writeLife (参数一,成熟而,参数三,参数四)
// 参数一:要写入文件的路径 ----- 相对路径和绝对路径都可以
// 参数二:要写入文件的内容
// 参数三: 配置项,设置写入的字符集 utf8
// 参数四:写入完成后触发的回调函数(可以是普通函数,也可以是箭头函数),有一个参数 --- err (错误对象)
let obj = [{ name: 'em', age: 13 }];
// 要转成JOSN字符串格式
let objSrt = JSON.stringify(obj)
fs.writeFile('inio.txt', objSrt, (err) => {
console.log('haha');
console.log(err);
})
11. fs-appendFile-文件追加
12.1文件追加 appendFile 功能 :向指定文件中写入字符串(追加写入),
如果没有该文件则尝试创建该文件。
// 引入模块
const fs = require('fs');
// \n 表示换行的意思
let obj = [{ name: 'em', age: 13 }];
// 要转成JOSN字符串的格式
let objSrt = JSON.stringify(obj)
// 追加写入 appendLife (参数一,成熟而,参数三,参数四)
// 参数一:要写入文件的路径 ———— 相对路径和绝对路径都可以
// 参数二:要写入文件的内容
// 参数三: 配置项,设置写入的字符集 utf8
// 参数四:写入完成后触发的回调函数(可以是普通函数,也可以是箭头函数),有一个参数 --- err (错误对象)
fs.appendFile('inio.txt', "\n" + objSrt, (err) => {
console.log(err);
})
12. 路径存在的隐患
在读取文件时,使用相对路径是容易出问题的
13.路径问题-使用绝对路径
目标:掌握
__dirname
和__filename
的用法,并能在操作文件路径时,正确使用
13.1 绝对路径 与 相对路径
绝对路径: 从磁盘根目录开始到指定文件的路径。
相对路径:是以某个文件的位置为起点,相对于这个位置来找另一个文件。
13.2 __dirname __filename 获取绝对路径
__dirname:获取当前被执行的文件的文件夹所处的绝对路径
__filename:获取当前被执行的文件的绝对路径
全局变量的含义是:
变量:它们的值是变化的。在不同的文件中值就不同。
全局:在任意地方都可以直接使用。
14. path模块
官网文档地址:path模块官网文档 。它是也是node中的核心模块,作用是用来处理路径问题:拼接,分析,取后缀名等等。
1.引入模块
const path = require('path');
console.log(path);
2.使用模块
path.basename() :此方法返回 `path` 的最后一部分。一般可用来获取路径中的文件名。
path.join() :路径拼接。
path.parse(path) :把一个路径转成一个对象
path.extname('index.html');// 返回: '.html'
15.总结:
-
熟悉运行node的一些基础命令
-
知道node.js与浏览器端的区别
-
理解fs-readFile的异步 与 同步
-
熟练fs-writeFile-覆盖写入
-
熟练fs-appendFile-追加写入
-
知道路径存在的隐患,并且知道要如何解决
-
记住path模块常用的一些方法
-
-
记住fs模块常用的一些方法
-