Node.js
是什么
是一个js的运行环境(有了Node.js,就可以脱离浏览器,独立执行js的代码)
选择cmd终端
在node环境下使用node命令,执行js代码
法一
法二(选)
在集成终端中打开
这样再执行某个js文件时,(切换终端里的路径,直接定位文件所在文件夹)就可以使用node + 相对路径
fs模块 —— 读写文件
语法:
- 将js模块加载到js文件中,获取js模块对象
const fs = require('fs') 模块的名字
- 写入文件内容
fs.writeFile('文件路径' , '写入的内容' ,err => {}) 写入后的回调函数
- 读取文件内容
fs.readFile('文件路径' , (err,data)=>{}) 读取后的回调函数
data 是 buffer 16进制数据流对象 ;要通过data.toString()才能转换成字符串
path模块 —— 路径问题
注意一个问题:Node.js代码中,相对路径是根据终端所在路径来找的
建议:在Node.js代码中,使用绝对路径
绝对路径如何获取:__dirname
可动态获取当前模块js文件所在文件夹目录的绝对路径
由于windows和mac不同平台的定界符不同;我们使用path.join() 拼接路径
path.join():使特定于平台的分隔符,作为定界符,将所有给定的路径片段连接在一起
const fs = require('fs')
const path = require('path')//读取文件内容
fs.readFile(path.join(__dirname,'../test.txt'),(err,data)=>{if(err) console.log(err)else console.log(data.toString())
})
语法:
- 加载path模块,引入path模块对象
- 调用path.join() 配合__dirname 组成目标文件的绝对路径
案例1. —— 压缩前端html
目的:让前端的代码体积更小,用户在自己浏览器中加载的更快
需求:把回车符\r 和 换行符\n去掉,然后写入新的html文件中
思路:
读取源html文件内容 -> 正则表达式替换字符串(\r\n 换成'')-> 写入新的html文件中
- 读取源html文件内容
- 正则表达式替换字符串
- 写入新的html文件中
http模块 —— 创建Web服务程序
需求:创建Web服务 并 响应内容给浏览器
端口号:0~65535 ; 其中0~1023是被系统占用的
- 加载http模块
- 创建Web服务对象
- 监听request请求事件,设置响应头和响应体
- 配置端口号 并 启动Web服务
- 浏览器请求(http://localhost:端口号)测试
server.on("request",(req,res)=>{
res.end("Hello Nodejs")
//end方法能够将数据返回给浏览器,浏览器会显示该字符串
})*on:该方法用来监听事件**
参数1(此处的request):事件类型,request代表浏览器请求事件
参数2:回调函数。当监听到浏览器请求后,发出的回调函数,该函数中有两个参数
第一个参数(此处req):请求对象
第二个参数(此处res):响应对象
end方法能够将数据返回给浏览器,浏览器会显示该字符串
案例2.—— 浏览时钟
需求:基于Web服务,将时钟网页提供给浏览器浏览
只有请求/index.html时,才把压缩完的,时钟的html文件里的字符串内容返回给请求方