练习:
获取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
把对象格式化为查询字符串 stringify
url
parse/format
全局函数
setTimeout/clearTimeout
setInterval/clearInterval
setImmediate/clearImmediate
process.nextTick
同步(Sync)异步
同步: 等待前面的代码执行完,之后才能执行后面的代码; 会阻止后面代码的执行, 通过返回值获取结果.
异步: 不会阻止后面的代码执行, 后面的操作可以现执行, 不必等待前面的操作结束, 通过回调函数来获取结果.
- callBack err: 错误信息 stats: 文件状态信息
- callBack err: 错误信息
- callBack err: 错误信息 //使用异步移除 目录 mydir //使用同步移除 目录 mydir2
- callBack · err 错误信息 · fileList 读取的结果,格式为数组
创建文件 / 写入文件
fs.writeFile(path, data, callBack) / writeFile(path, data)
追加写入文件
fs.appendFile(path, data, callBack) /
appendFileSync(path, data)
如果文件不存在会创建文件写入数据; 文件已经存在在文件的末尾写入数据; - 练习: 创建一个数据每个元素是一个课程名称, 遍历数据, 获取元素, 将数据使用 同步方法 写入文件 data.md
读取文件
fs.readFile(path, callBack) / readFileSync(path)
删除文件
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 管道, 可以将数据从可读流中导向可写流
Remote Address: 请求的 IP 地址及端口号
响应的头信息
Connection: 连接方式, keep-alive 持久连接
Content-Encoding: 内容压缩形式, gzip
Content-Type: 响应的文件类型
Location: 跳转的URL, 常配合状态码为 3** 时使用
请求头信息
Accept: 浏览器接受的文件类型有哪些
Accept-Encoding: 接受的压缩形式有哪些
User-Agent: 客户端使用的浏览器的详细信息
请求主体
可有可无, 浏览器向服务器发送请求的数据
模拟浏览器向 Web 服务器发请求, 还可以创建 Web 服务器
模拟浏览器
http.get(url, callBack) 发送请求
创建 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