Node.js
Have a good day
NodeJs
初识Node.js
JavaScript运行环境
V8 引擎负责解析和执行Javascript的代码
内置API是由运行环境提供的特殊接口,只能在所属的运行环境中被调用
Node.js简介
Node.js是一个基于Chrome V8 引擎的JavaScript运行环境
浏览器是JavaScript的前端运行环境
Node.js是JavaScript的后端运行环境
Node.js中无法调用DOM和BOM等浏览器内置的API
Node.js环境的安装
查看已安装的node.js的版本号
- 代开终端,中终端输入node -v,即可查看node.js的版本号
在Node.js环境中执行JavaScript代码
代开终端
输入node要执行的js文件的路径
fs文件系统模块
fs模块是node.js官方提供的,用来操作文件的模块
fs.readFile()方法,来读取指定文件中的内容
fs.writeFile()方法,用来指定的文件中写入内容
在JavaScript代码中,使用fs模块来操作文件,则需要使用如下的方式导入
const fs = require(‘fs’)
fs.readFile()的语法格式
fs.readFile(path[,options],callback)
参数1:必选参数,字符串,表示文件的路径
参数2:可选参数,表示以什么编码格式来读取文件
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果
判断文件是否读取成功,判断err对象是否为null
fs.writeFile()的语法格式
fs.writeFile(file,data[,options],callback)
参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径
参数2:必选参数,表示要写入的内容
参数3:可选参数,表示以什么格式写入文件内容,默认值是utf8
参数4:必选参数,文件写入完成后的回调函数
判断文件是否读取成功,判断err对象是否为null
fs 模块 - 路径动态拼接的问题
- 使用__dirname 表示当前文件的目录
path路径模块
path模块是node.js官方提供的,用来处理路径的模块
path.join()方法,用来讲多个路径片段拼接成一个完成的路径字符串
__dirname 表示当前文件所处的目录
path.basename()方法,用来从路径字符串中,将文件名解析出来
path.join([..paths])
参数:
…paths<String> 路径片段的序列
- 返回值<String>
path.basename(path[,ext])
参数:
path<String> 必选参数,表示一个路径的字符串
ext<String> 可选参数,表示文件扩展名
创建最基本的web服务器
步骤1 导入http模块
const http = require(‘http’)
步骤2 创建web服务器实例
调用http.createServer() 方法,快速创建一个web服务器
1 | const server = http.createServer() |
步骤3 为服务器实例绑定request事件
1 | // 使用服务器实例.on()方法,为服务器绑定一个request事件 |
步骤4 启动服务器
1 | // 调用server.listen(端口号,cb回调)方法,即可启动web服务器 |
req请求对象
只要服务器接收到了客户端的请求,就会调用通过server.on()为服务器绑定的request事件处理函数,访问与客户端相关的数据或属性,可以用下面的方式
1 | server.on("request", (req) => { |
res 响应对象
在服务器的request事件处理函数中,如果相访问与服务器相关的数据或属性,
1 | server.on("request", (req, res) => { |
解决中文乱码的问题
1 | server.on("request", (req, res) => { |
根据不同的url响应不同的html内容
核心实现步骤
获取请求的url地址
设置默认的响应内容为404 Not Found
判断用户请求的是否为/ 或 /index.html首页
判断用户请求的是否为/about.html关于页面
设置Content-Type 响应头,防止中文乱码
使用res.end()把内容响应给客户端
1 | server.on("request", (req, res) => { |
案例- 实现clock时钟的web服务器
实现步骤
导入需要的模块
创建基本的web服务器
将资源的请求url地址映射为文件的存放路径
读取文件内容并响应给客户端
优化资源的请求路径
步骤1 - 导入需要的模块
1 | const http = require("http") |
步骤2 - 创建基本的web服务器
1 | const http = require("http") |
步骤3 - 将资源的请求url地址映射为文件的存放路径
1 | // 3.1 获取客户端请求的url地址 |
步骤4 - 读取文件的内容并响应给客户端
1 | fs.readFile(fpath, "utf8", (err, date) => { |
步骤5 - 优化资源的请求路径
1 | // 5.1 预定义空白的文件存放路径 |