NodeJs简明教程将从零开始学习NodeJs相关知识,帮助JS开发者搭建全栈开发技术栈!本文是NodeJs简明教程的第四部分,将介绍NodeJs文件系统模块相关的基本操作。fs模块提供了一个API,用于以模仿标准POSIX函数的方式与文件系统进行交互。读取文件文件系统的大部分函数有异步调用和同步调用两种形式。异步在异步模式下,回调函数的第一个参数总是一个Error对象,函数一般没有返回值。如果为null,说明本次调用没有错误如果不为null,证明本次调用有错误新建一个index.js文件:constfs=require('fs');fs.readFile('./index.js',{encoding:'utf8'},(err,data)=>{if(err){console.error('读取文件失败',err);return;}console.log(data);})readFile的second如果参数没有指定编码,回调函数得到的data对象是一个Buffer,需要手动转成字符串。读取文本文件可以指定编码,但是读取二进制文件(比如读取图片文件)会在当前目录下执行nodeindex.js,输出如下:constfs=require('fs');fs.readFile('./index.js',{encoding:'utf8'},(err,data)=>{if(err){console.error('读取文件失败',err);return;}console.log(data);})同步模式在同步模式下,返回值是调用函数的结果。如果调用失败,将抛出一个Error对象:constfs=require('fs');try{constdata=fs.readFileSync('./index.js',{encoding:'utf8'});console.log(data);}catch(e){console.log('readfailed',e)}输出数据与同步方式一致。可以看到同步模式和异步模式处理错误的方式是不一样的。各位读者,生产中尽量不要使用同步函数,否则会阻塞事件循环。当然,有一个例外。可以同步读取配置文件,然后启动服务器。写文件新建index.js,代码如下:constfs=require('fs');constdata='HelloWorld';fs.writeFile('./a.txt',data,(error)=>{if(error){console.error('保存失败',error);return;}console.log('保存成功');})执行nodeindex.js,输出保存成功,并且当前目录将有更多内容作为HelloWorld文本文件。常用APIfs.copyFile(src,dest[,flags],callback)复制文件fs.stat(path[,options],callback)读取文件状态fs.unlink(path,callback)删除文件fs.rename(oldPath,newPath,callback)重命名文件fs.mkdir(path[,options],callback)创建一个新目录fs.rmdir(path,callback)删除目录Epilogue。文件系统的函数调用方式与本文示例类似,读者可以举一反三。欢迎关注Nodejs之路公众号持续更新和在线问答帮助。
