1.同步和异步
同步:在主线程中执行,会阻止后续代码的执行,是通过返回值获取结果
异步:在一个独立的线程执行,不会阻止后续代码的执行,是通过回调函数获取结果
2.文件系统(fs)
(1)查看文件状态
statSync(文件的路径) / stat(文件的路径, 回调函数)
isFile() 查看是否为文件
isDirectory() 查看是否为目录
(2)创建目录
mkdirSync(目录的路径) / mkdir(目录的路径, 回调函数)
(3)移除目录
rmdirSync(目录的路径) / rmdir(目录的路径, 回调函数)
不允许移除有文件的目录
(4)读取目录
readdirSync(目录的路径) / readdir(目录的路径, 回调函数)
读取的结果为数组
(5)清空写入文件
writeFileSync(文件的路径, 写入的数据)/writeFile(文件的路径, 写入的数据, 回调函数)
如果文件不存在,先创建文件然后写入数据
如果文件已经存在,先清空文件中的内容然后写入数据
(6)追加写入文件
appendFileSync(文件的路径, 写入的数据)/appendFile(文件的路径, 写入的数据, 回调函数)
如果文件不存在,先创建文件然后写入数据
如果文件已经存在,会在文件的末尾追加写入数据
练习:使用同步追加写入的方式往文件3.txt中写入数据 '涛哥'
练习:创建数组,包含一组姓名,遍历数组得到每个姓名,使用异步方法把数据写入到文件stu.txt中
var arr=['张三','王五','李四','肖德'];
//遍历数组
for(var i=0;i<arr.length;i++){
//console.log(arr[i]);
fs.appendFile('./stu.txt',arr[i]+'\n',(err)=>{
if(err) throw err;
});
}
(7)读取文件
readFileSync(文件的路径)/readFile(文件的路径,回调函数)
格式为buffer数据
(8)删除文件
unlinkSync(文件的路径)/unlink(文件的路径, 回调函数)
练习:使用同步方法删除1.txt,使用异步方法删除2.html
//同步
//fs.unlinkSync('./1.txt');
//异步
fs.unlink('./2.html',(err)=>{
if(err) throw err;
});
(9)检测文件(目录)是否存在
existsSync(文件的路径)
存在->true 不存在->false
练习:如果3.txt文件存在的话,删除该文件;如果mydir目录不存在,创建该目录;都是用同步的方法
if(fs.existsSync('./3.txt')){
fs.unlinkSync('./3.txt');
}
if(!fs.existsSync('./mydir')){
fs.mkdirSync('./mydir');
}
(10)拷贝文件
copyFileSync(源文件的路径, 目标文件的路径)/copyFile(源文件的路径, 目标文件的路径, 回调函数)
3.文件流
createReadStream() 创建可读取的流
createWriteStream() 创建可写入的流
on('事件名称', 回调函数) 一旦触发事件,会自动调用回调函数,事件名称是固定的
pipe() 管道,可以将读取的流添加到写入的流
4.http协议
http:超文本传输协议,是浏览器和web服务器之间的通信协议
(1)通用头信息
Request URL:要请求的服务器端的资源
Request Method:请求的方法,对资源的操作方式 get/post...
Status Code:响应的状态码
1**:接收到了请求,还没有作出相应
2**:成功的响应
3**:响应的重定向,发生跳转
4**:客户端错误
5**:服务器端错误
(2)响应头信息 response
Content-Type:响应的内容类型, 解决中文乱码 text/html;charset=utf-8
Location:设置跳转的URL
(3)请求头信息 request
(4)请求主体
只有传递数据才会显示
5.http模块
可以创建WEB服务器,给客户端提供资源
const app=http.createServer();//创建WEB服务器 app.listen(8080); //设置端口 app.on('request', (req,res)=>{ req 请求的对象 req.url获取请求的URL 格式 '/login' req.method 获取请求的方法 res 响应的对象 res.writeHead(状态码, 头信息) 设置响应的状态码和头信息 res.write() 设置响应到浏览器的内容 res.end() 结束并发送响应 }) |