NodeJs(day03)
2021/8/7 17:09:41
本文主要是介绍NodeJs(day03),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
复习 + 练习
-
练习:
获取URL中查询字符串的数据
https://www.tmooc.cn:80/course.html?cid=17&cname=web -
模块
以路径开头 不以路径开头 文件模块 reqiure("./circle.js") require(“url”) 自定义模块 核心模块 目录模块 require("./02_2") require(“mysql”) 会找目录下 package.json 到当前目录下 找min 属性对用的文件,找不 node_modules中 到引入 index.js 寻找 mysql目录; npm install mysql
querystring 查询字符串
https://www.jd.com/search?kw=电脑将查询字符串转为对象 parse
把对象格式化为查询字符串 stringifyurl
parse/format -
全局函数
setTimeout/clearTimeout
setInterval/clearInterval
setImmediate/clearImmediate
process.nextTick
fs 模块
-
同步(Sync)异步
同步: 等待前面的代码执行完,之后才能执行后面的代码; 会阻止后面代码的执行, 通过返回值获取结果.异步: 不会阻止后面的代码执行, 后面的操作可以现执行, 不必等待前面的操作结束, 通过回调函数来获取结果.
- 读取文件状态
fs.stat(path, callBack) / statSync(path)
- callBack err: 错误信息 stats: 文件状态信息
- 创建目录
fs.mkdir(path, callBack) / mkdirSync(path)
- callBack err: 错误信息
- 移除目录
fs.rmdir(path, callBack) / rmdirSync(path)
- callBack err: 错误信息 //使用异步移除 目录 mydir //使用同步移除 目录 mydir2
- 读取目录
fs.readdir(path, callBack) / readdirSync(path)
- callBack · err 错误信息 · fileList 读取的结果,格式为数组
-
创建文件 / 写入文件
fs.writeFile(path, data, callBack) / writeFile(path, data)- data 要写入的数据
- callBack:
err: 错误信息
如果文件不存在, 会创建文件并写入数据
如果文件已经存在, 则会清空文件再次写入
-
追加写入文件
fs.appendFile(path, data, callBack) /
appendFileSync(path, data)
如果文件不存在会创建文件写入数据; 文件已经存在在文件的末尾写入数据; - 练习: 创建一个数据每个元素是一个课程名称, 遍历数据, 获取元素, 将数据使用 同步方法 写入文件 data.md
-
读取文件
fs.readFile(path, callBack) / readFileSync(path)- callBack
err
data 读取的数据, 格式为 buffer
- callBack
-
删除文件
fs.unlink(path, callBack) /unlinkSync(path) -
判断文件是否存在
fs.existsSync(path)
- 练习: 判断 data.txt 文件是否存在,如果存在,则删除
- 文件流
- let readStream = fs.createReadStream(文件路径) 创建一个可读流 - readStream.on("data", function(chunk) { }) 当有数据流入, 自动触发事件; 通过回调函数来获取,chunk 就是获取的数据流 - readStream.on("end", function() { }) 当读取结束, 自动触发事件 - pipe 管道, 可以将数据从可读流中导向可写流
http 协议
- 浏览器和 web 服务器之间的通信协议
- 通用头信息
Request URL: 请求的URL, 对用的是浏览器地址栏; 向服务器获取哪些内容
Request Method: 请求方法, 获取内容的方式 GET/POST
Status Code: 响应的状态码
1**: 正在响应, 还没有结束
2**: 成功响应
3**: 响应的重定向, 会跳转到另一个 URL
4**: 客户端请求错误
5**: 服务器端错误
Remote Address: 请求的 IP 地址及端口号
-
响应的头信息
Connection: 连接方式, keep-alive 持久连接
Content-Encoding: 内容压缩形式, gzip
Content-Type: 响应的文件类型
Location: 跳转的URL, 常配合状态码为 3** 时使用 -
请求头信息
Accept: 浏览器接受的文件类型有哪些
Accept-Encoding: 接受的压缩形式有哪些
User-Agent: 客户端使用的浏览器的详细信息 -
请求主体
可有可无, 浏览器向服务器发送请求的数据
Http 模块
模拟浏览器向 Web 服务器发请求, 还可以创建 Web 服务器
-
模拟浏览器
http.get(url, callBack) 发送请求- url: 请求的URL
- callBack: 回调函数, 获取服务器端的响应
response: 服的对象务端响应
response.statusCode 获取响应的状态码
response.on(“data”, function(chunk) {})
事件: 监听服务器端是否有数据传输过来
chunk: 传输的数据, 格式为 Buffer
-
创建 web 服务器
let app = http.createServer(); //创建 web 服务器 app.listen(8080); //设置监听的端口 //监听浏览器的请求 app.on("request", function(req, res) { //req: 请求的对象 req.url //请求的 url, 获取端口号后边的部分 req.method //请求的方法 req.headers //请求的头信息 //res: 响应的对象 res.write() //响应的内容 res.writeHead( 状态码, 头部信息对象 ) res.end() //结束并发送响应到浏览器 }); `` ## 课后任务 1. 整理思维导图 2. 练习 2.1 创建 web 服务器, 监听端口 8080, 接收浏览器的请求, 根据请求做出不同的响应 /login 响应内容 this is login page /reg 响应内容 this is reg page /study 跳转 http://www.163.com http://127.0.0.1:8080
这篇关于NodeJs(day03)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-21Vue3教程:新手入门到实践应用
- 2024-12-21VueRouter4教程:从入门到实践
- 2024-12-20Vue3项目实战:从入门到上手
- 2024-12-20Vue3项目实战:新手入门教程
- 2024-12-20VueRouter4项目实战:新手入门教程
- 2024-12-20如何实现JDBC和jsp的关系?-icode9专业技术文章分享
- 2024-12-20Vue项目中实现TagsView标签栏导航的简单教程
- 2024-12-20Vue3入门教程:从零开始搭建你的第一个Vue3项目
- 2024-12-20从零开始学习vueRouter4:基础教程
- 2024-12-20Vuex4课程:新手入门到上手实战全攻略