前言:
nodejs 自带的文件操作的模块 fs
就是对文件的增删查改;
就像我们用的服务器,我们没有办法在运行的文件上进行一直的修改,因为他不向浏览器,刷新后我们的文件会自己修改;
如果想要更改我们的服务器文件,我们需要关闭服务器后,重新启动;这样便能达到这样修改文件的效果;
所以我们迫切的需要一种操作,就是在类似于 phpstudy 这种我们可以 在 www 的根目录下 ,我们就可以很轻松的对文件进行操作;
但是,让我们研究文件的话,时间长,且真的很麻烦,但是 nodejs 就为我们 考虑 好了,我们只需要 在 nodejs 自带的 fs 模块中,便能很轻松的打出文件操作
我们需要了解的前提:
文件操作是服务器最慢的操作,二进制数据,文件读取
一个端口只能服务一个人
机器对机器,就是二进制传输
用法:
文件操作的模块 fs ----> 全称 file system 基本的操作:增删查改
服务器的操作都是异步的;
同步和异步的区别?
异步:可以多种操作同时进行 即使:我们的一个操作,出现了卡顿,不运行的操作,我们后面的操作也会执行
同步:相当于排队操作,一个操作完了,后面的才能开始,如果出现了 卡顿,我们的服务器也就只能卡在那里;
读取文件:readFile()
写文件:writeFile()
案例:
所有的回调函数,都是异步操作的一种;
readFile() fs模块读取文件的方法,参数一:要读取的文件,参数二:回调函数, 回调函数的参数:参数一:err ,参数二:data (err:代表文件读取不到,data:代表读取的数据)
const http=require("http"); // http 模块,用来进行服务器操作
const fn=require("fs"); // fs 模块,文件操作
var server=http.createServer(function(req,res){ // 创建的 服务器
var file_name="./www"+req.url; // 我们文件 这种 在服务器的网址 后面输入 根目录情况
fn.readFile(file_name,function(err,data){ // fn.readFile() fs模块读取文件的方法,参数一:读取的文件,参数二:回调函数,回调函数中的参数(err,data)
if(err){ // err 读取不到返回不到的内容 data 读取到了文件返回的数据
res.write("404") // res.write() 在浏览器响应我们写文件的内容
}
else{
res.write(data)
}
res.end(); // 每次浏览器将数据请求完 我们用 res.end() 告诉浏览器,你请求完了,不要在这了
})
})
server.listen(8686);
以上是读取文件的操作
案例:
修改文件内容的操作
fs.writeFile() 参数一:要修改的文件 参数二:修改的内容 参数三:回调函数 (回调函数中的参数 err 返回错误的参数)
这种方法,很强大,也就是我们如果我们没有这个文件,他会创建这个文件,如果有这个文件,会直接将里面的内容进行修改
fs.writeFile("bbb.txt","skdfjsdiofj",function(err){
console.log(err);
})