1.同步和异步
同步:在主程序中执行,会阻止后续代码的执行,是通过返回值来获取结果
异步:在一个独立的线程执行,不会阻止后续代码的执行,是通过回调函数来获取结果
2.文件系统模块
(1)查看文件状态
fs.stat(文件的路径, 回调函数)
回调函数 用来获取结果
err 可能产生的错误
s 成功的结果
(2)读取目录
readdirSync(目录的路径) / readdir(目录的路径, 回调函数)
(3)清空写入
writeFileSync(文件的路径,数据)/writeFile(文件的路径,数据,回调函数)
如果文件不存在,先创建文件然后写入数据
如果文件已经存在,先清空文件中的内容,然后写入数据
(4)追加写入
appendFileSync(文件的路径,数据) / appendFile(文件的路径,数据,回调函数)
如果文件不存在,先创建文件然后写入数据
如果文件已经存在,会在文件的末尾追加写入数据
(5)读取文件
readFileSync(文件的路径)/readFile(文件的路径,回调函数)
读取的数据,格式默认为buffer
(6)删除文件
unlinkSync(文件的路径)/unlink(文件的路径,回调函数)
(7)检测文件是否存在
existsSync(文件的路径)
存在->true 不存在->false
练习:如果文件3.txt存在,同步删除该文件;如果目录mydir不存在,则同步创该目录建
(8)拷贝文件
copyFileSync(源文件路径,目标文件路径)/copyFile(源文件路径,目标文件路径,回调函数)
(9)流
createReadStream() 创建可读取的文件流
createWriteStream() 创建可写入的文件流
pipe() 管道,可以将读取流通过管道添加到写入流
on(事件名称, 回调函数) 添加事件,一旦事件触发,会调用回调函数;事件名称是字符串格式
3.http协议
浏览器和WEB服务器之间的通信协议
http://www.codeboy.com:9999/index.html
(1)通用头信息
Request URL:请求的URL,表示要请求的服务器端资源
Request Method:请求的方法,对资源的操作方式 get/post...
Status Code:响应的状态码
1**:服务器端接收到了请求,还没有做出响应
2**:成功的响应
3**:响应的重定向,跳转到另一个URL
4**:客户端请求错误
5**:服务器端错误
(2)响应头信息(response)
Content-Type:设置响应的内容类型
解决中文乱码 text/html;charset=utf-8
Location:设置响应的重定向中要跳转的URL
(3)请求头信息(request)
(4)请求主体
可有有无,如果有数据传递才会出现
4.http模块
可以用来创建WEB服务器
const http = require('http'); const app = http.createServer();//创建WEB服务器 app.listen(8080); //设置端口 //通过事件来接受请求并作出响应 app.on('request', (req,res)=>{ req 请求的对象 req.url 获取请求的URL,格式为 '/jianbing' '/youtiao' req.method 获取请求的方法 res 响应的对象 res.write() 设置响应的内容 res.writeHead() 设置响应的状态码和头信息 res.end() 结束并发送 }) |
课后任务
(1)复习今天内容,整理思维导图
(2)练习:创建web服务器,设置端口8080,添加事件,根据请求作出响应
'/list' 响应 '这是商品列表'
'/index' 响应文件'1.html',先读取文件,然后把读取的内容作为响应的内容
'/study' 跳转到 http://www.tmoo.cn
其它 响应状态码404 not found
(3)预习nodejs第4天
注意路径 !!
/*练习:创建web服务器,设置端口8080,添加事件,根据请求作出响应
'/list' 响应 '这是商品列表'
'/index' 响应文件'1.html',先读取文件,然后把读取的内容作为响应的内容
'/study' 跳转到 http://www.tmooc.cn
其它 响应状态码404 not found*/
const http = require('http');
const fs = require('fs');
//创建
const app = http.createServer();
//设置端口
app.listen(8082);
app.on('request',(req,res)=>{
if(req.url ==='/list'){
res.write();
//结束并发送
res.end();
}else if(req.url ==='/index'){
fs.readFile('./1.html',(err,sucess)=>{
if(err){
throw err;
}
res.write(sucess.toString());
//结束并发送
res.end();
});
}else if(req.url ==='/sduty'){
res.writeHead(302,{
Location:'http://www.tmooc.cn'
});
res.end();
}else{
res.writeHead(404,{
});
res.write('404!Not Found!');
//结束并发送
res.end();
}
});