fs模块
fs模块
-
引入模块: var fs = require('fs')
-
文件操作格式:
-
同步操作格式
-
异步操作格式
-
简单操作格式
-
流式操作格式
-
-
同步操作模式:
let fs =require('fs') let fd = fs.openSync('要打开的文件','a') r:只读 w:覆盖写 a:追加写入 fs.writeSync(fd,'内容','编码格式')
-
异步操作模式:
let fs = require('fs') fs.open('./1.txt','a',(err,fd)=>{ fs.write(fd,'异步写入',(err)=>{ if(!err){ return console.log('写入成功') } console.log('写入失败') }) })
-
简单操作格式:
fs.writeFile(file,data,[options],callback)file: 打开的文件
data:写入内容
[options] :简单的设置 设置 flag:"a" 设置编码格式 encoding:"utf8"
格式:{flag:"a",encoding:"utf8"}r: 只读状态
w: 覆盖写
a: 追加写
callback :(err) err:返回错误提示信息
-
流式操作格式(返回)
let fs = require('fs') fs.createtWirteStream(file,[options]) file:打开一个可写的文件 options:设置{flags:'a'} //创建一个可写的流 let ws = fs.createWriteStream('打开一个可写的文件',{flags:'a'}) ws.write('写入内容') ws.write('写入内容') ws.write('写入内容') ... ws.end()//写完之后关闭 /*let fs = require('fs') var ws= fs.createWriteStream('./1.txt',{flag:'a'}) ws.write('1') ws.write('2') ws.write('3') ws.end('4')*/
-
可读流和可写流
var fs = require ('fs') //创建可读流 let rs = fs.createReadStream('./1.txt') //创建可写流 let ws = fs.createWriteStream('./1.txt') //要用到流写入文件必须绑定一个事件,通过事件触发流写入 rs.on('data',(data)=>{ ws.write(data) }) rs.on('end',()=>{ ws.end() })
-
文件读取
fs.readdir(path,[options],callback) path:要读取的文件路径 [options]:设置:(状态或者编码格式,一般不会设置,默认) callback(err,files)
-
文件状态
fs.stat(path.callback) stats.isFile()//是否是一个文件 stats.isDirectory()//是否是一个目录
-
path
-
提供了文件路径和目录路径的工具
-
兼容其他系统读取文件路径格式
-
path.win32:读取的路径都是兼容
let path = require('path') path.basename()//得到文件最后一部分 __dirname win:读取路径 得到值 path.basename(__dirname+'1.js'); 其他系统:path.win32.basename(__dirname+'1.js')
-
path属性
-
path.basename(path,[ext])返回path的最后一部分
-
path:文件路径
-
[ext] :获取文件后缀,但是返回的是文件前面部分.html
从最后一次出现.(句号)字符到path最后一部分的字符串结束,如果第一个字符为没有点,或者开头就是点,则返回空字符串,如.html,返回空
path.delimiter 返回平台路径定界符 ; limit: 分页 path.dirname(path) path.isAbsolute(path):检测path是否为绝对路径,如果是零长度字符串返回false path.join()//使用分隔符\作为界定符,将path片段连起来 path.parse()//解析路径 path.resolve()//将path解析为绝对路径
-
-
URL
var {url} = require('url') var urlString = 'http://www.baidu.com' let obj = new URL(urlString) console.log(obj)
删除文件
fs.unlink(path,callback)
fs.unlink()不能用于目录。要删除目录,使用fs,rmdir()
删除目录
fs.rmdir(path,callback)
path:文件路径地址
callback:(err):返回错误信息
只能删除非空目录,不能删除文件
重命名(覆盖)
fs.rename(oldPath,newPath,callback)
oldPath:旧文件路径
newPath:新文件路径
callback(err):err 返回错误提示信息
创建目录
fs.mkdir(path[,options],callback)
recursive:true 递归创建
path:文件路径地址
[options]:设置 {recursive:true}递归创建
callback(err):err 返回错误提示信息
Express
let expres = require('express')
let app = express()//实例得到应用程序
app.listen(3000)//监听端口
app.get('/',function(req,res){
res.send('hello world')
})