nodejs fs 读取css,nodejs第二天(fs文件系统模块,异步同步区别,同步异步读取,同步异步写入,封装读取文件,同步异步追加文件,nodejs服务器请求事件,favicon.ico文件是...

fs模块是nodejs的核心模块,它提供了文件的读取、写入、更名、删除、遍历目录、链接等POSIX文件系统操作。

fs与其他模块不同的是 fs模块都提供了异步和同步的两个版本,例如  readFile 和 readFilesync 的读取文件就是有两个版本

异步和同步的区别

同步:执行一个方法,只有方法给出结果后,才算结束

异步:执行一个方法,只是交代要做的事情,然后去做其他事情,而交代给回调来处理

异步读取

参数:1,要读取的文件路径

2,读取时用到的编码格式

3,回调函数,要来输出读取成功或者是失败

var fs=require("fs");

fs.readFile("./读取文件的名字.txt","编码格式",回调函数 functio(err,data){

如果文件读取失败就打印失败,读取成功就打印成功

if(err){

console.log(“读取失败”,err.message)

}else{

console.log(data)

}

})

同步读取

参数:1,文本文件

2,字符编码

var data=""

try{

data = fs.redaFileSync("./文本文件名字.txt","utf-8");

console.log("data",data);

}catch(error){

console.log("error:",error);

}

所有语言程序中 都有try...catch异常捕获机制

try:试一试 试着做 catch:抓住 捕获

异步写入

var fs = require("fs");

writeFile:write(写)file(文件)

参数:1,给定一个要写入的文件

2,要写如的数据

3,字符编码

4,回调函数:返回文件写入失败或成功

fs.writeFile(‘./创建的文件名称.txt‘,‘要写入的数据‘,‘字符编码‘,回调函数function(err){

if(err){

console.log("写入失败",err)

}else{

console.log("写入成功”)

}

})

同步写入(个人认为同步写入和异步写入写法上只在writeFile 和 writeFileSync上有区别)

var fs = require("fs");

writeFileSync:write(写)file(文件)

参数:1,给定一个要写入的文件

2,要写如的数据

3,字符编码

4,回调函数:返回文件写入失败或成功

fs.writeFileSync(‘./创建的文件名称.txt‘,‘要写入的数据‘,‘字符编码‘,回调函数function(err){

if(err){

console.log("同步写入失败",err)

}else{

console.log("同步写入成功”)

}

})

封装读取文件

1,创建一个http服务器,和 js模块系统

var http=require("http")

var fs=require("fs")

2,创建一个服务器

http.createSever(function(req,res){

对请求和响应进行执行

3,对不同的url地址读取对应的文件

var url=req.url; 得到浏览器中的地址

var fileName=“”;

switch(url){

case "/"(注意:此处“/”前不带“.”)

读取文件方法(在此封装了一个函数)

先把他们读取文件的地址给了fileName

fileName=“./index.html”

readFileFun(fileName,res);

break;

case "/list.html"(注意:此处“/”前不带“.”)

读取文件方法(在此封装了一个函数)

先把他们读取文件的地址给了fileName

fileName=“./list.html”

readFileFun(fileName,res);

break;

case "/css"(注意:此处“/”前不带“.”)

读取文件方法(在此封装了一个函数)

先把他们读取文件的地址给了fileName

fileName=“./style.css”

readFileFun(fileName,res);

break

defaulte:

res.end("请输入正确路径")

break;

}

}).listen(4000,function(){

console.log("服务器启动成功!!")

})

4,开始写入封装函数

function readFileFun(fileName,res){

进行文件读取

fs.readFile(fileName,"utf8",function(err,data){

if(err){

var msg=fileName+"文件读取失败";

res.end(msg)

}else{

res.write(data);

res.end();

}

})

}

追加文件(异步)

追加文件:向文件中追加内容 是不清除原有数据的情况下

写入文件: 写入数据 每次把原来的数据清除

var fs=require("fs");

fs.appendFile("./追加的文件名.txt","追加的内容","编码格式",function(err){

if(!err){

console.log("写入数据成功")

}

})

追加文件(同步)

var fs=require("fs")

try(

fs.appendFileSync("./追加的文件名称.txt","追加的内容",“编码格式”)

)catch(error){

console.log(error)

}

nodejs服务器请求文件

案例步骤:

1,使用nodejs创建一个http服务器

2,引入fs文件系统模块

3,根据浏览器中urk地址的不同读取对应的文件

路径:“/”,读取index.html

"/list.html",读取list.html

"/css",读取style.css文件

4,将读取的信息输出到浏览端

//引入http模块

var http=require("http")

var fs=require("fs")

http.createSever(function(req,res){

var url=req.url;

//设置头信息读取不同的文件

res.writeHead(200,{"Content-type":"text/html/css;charset=utf8"})

if(url=="/"){

//回调的是 错误和成功的信息数据

fs.readFile("./index.html","utf-8",function(err,data){

if(err){

res.write("读取index.html失败")

res.end();

}else{

res.write(data)

res.end();

}

}

else if(url=="/list.html"){

fs.readFile("./list.html","utf8",function(err,data){

if(err){

res.write("读取list.html文件失败")

res.end()

}else{

res.write(data);

res.end();

}

})

}

else if(url=="/css"){

fs.readFile("./style.css","utf8",function(err,data){

if(err){

res.write("读取css文件失败")

res.end()

}else{

res.write(data);

res.end();

}

})

}

})

}).listen(3000,function(){

consoloe.log("服务启动成功")

})

favcion.ico文件是网站的图标

原文:https://www.cnblogs.com/songbingqi/p/12058650.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值