在node.js环境中 有两个全局变量 __dirname(当前js文件所在的目录) __filename(当前js文件的目录)他们均保留的字符串
var fs=require("fs")
fs.readFile(__dirname+"/index.html",(err,data)=>{
console.log(data)
}) //这里就是读取这个js所在的文件夹中的index.html文件
可以通过这种方法来设计静态网站
fs模块中对文件进行操作的模块包括:
1.读取文件
- // fs.readFile(__dirname+"/src/movie.mp4",(err,data)=>{
-
- // console.log("movie",data)
-
- // })
2.写入文件信息
- // fs.writeFile(__dirname+"/src/a.txt","hello",function(err){
-
- // console.log(err)
-
- // })
//(创建并写入文件信息:如果文件不存在 就会创建;如果文件夹不存在 就会报错 )
3.删除文件
- // fs.unlink(__dirname+"/src/a.txt",(err)=>{
-
- // console.log(err)
-
- // })
4.拼接内容到文件
- // fs.appendFile(__dirname+"/src/b.txt","马上放学",(err)=>{
-
- // console.log(err)
-
- // })
(注意需要在内容中加上引号表示是字符串;如果这个文件不存在,会创建一个txt文件)
5.创建一个文件夹
- // fs.mkdir(__dirname + '/test', function (err) {
-
- // if(err) throw err
-
- // console.log('创建目录成功')
-
- // })
6.把旧文件移入新文件
// var oldpath=__dirname+"/src/b"
// var newpath=__dirname+"/src/a/b"
// fs.rename(oldpath,newpath,(err)=>{}) //把文件b移到a文件下
// var oldpath=__dirname+"/src/a/b"
// var newpath=__dirname+"/src/a/c"
// fs.rename(oldpath,newpath,(err)=>{}) //更改了a文件夹中b文件的名字 改为c了
// var oldpath=__dirname+"/src/a/b.txt"
// var newpath=__dirname+"/src/a/c.js"
// fs.rename(oldpath,newpath,(err)=>{}) //更改了b.txt文件名为c.js
//上述中oldpath,newpath不是同一个根盘操作会失败
7.拷贝
// var oldpath=__dirname+"/src/18.jpg"
// var newpath=__dirname+"/src/a/18.jpg"
// fs.copyFile(oldpath,newpath,(err)=>{
// fs.unlink(oldpath,()=>{})
// }) //将18.jpg文件拷贝到a文件夹下 注意:在window系统中同一个文件夹中不能有两个名字相同的文件
8.读取文件夹
- // fs.readdir(__dirname,(err,arr)=>{
-
- // console.log(err,arr)
-
- // })
//将会读取该js文件的上一层目录的所有文件
// 网址: URL
// http://www.baidu.com/20220728/news/page1/index.html?count=20&maxid=123456#top1
//网址的组成:
协议 : http://
域名 : www.baidu.com
pathname : /20220728/news/page1/index.html (通过path=url.parse(req.url).pathname得到)
querystring : count=20&maxid=123456
(通过urlobj=url.parse(req.url) queryobj=querystring.parse(urlobj.query)得到)
hash : top1
第三方库 可以通过 npm i 加上库名来下载使用 这里我们学习了mime模块的使用 通过设定它就可以设定文件在浏览器的打开方式
- let type1=mime.getType(path)
-
- res.setHeader("content-Type",type1)
通过type1接受到path的类型,然后传给前端