• 技术文章 >web前端 >前端问答

    nodejs中fs是什么意思

    长期闲置长期闲置2021-12-23 10:57:01原创706

    nodejs中fs是“file system”文件系统的缩写,是NodeJS提供的文件操作API,fs模块用于对系统文件及目录进行读写操作,fs模块的所有方法都有同步和异步两种方式。

    本教程操作环境:windows10系统、nodejs 12.19.0版,DELL G3电脑。

    nodejs中fs是什么意思

    1.fs模块介绍

    fs全称是file system(文件系统),它是NodeJS提供的文件操作API。fs模块用于对系统文件及目录进行读写操作,是一个非常重要的模块,对文件的操作都基于它。该模块的所有方法都有同步和异步两种方式,下面先简单介绍一下fs模块的常用方法。

    2.使用fs模块进行简单的读写操作

    读取文件 => readFile(异步读取) 和 readFileSync(同步读取)

    fs.readFile(file_name[, options],function(err,data){
         //异步读取带两个必选参数和一个可选参数
         //必选参数:file_name文件路径名,callback回调函数,回调函数第一个参数是读取错误信息,第二个是文件里面的数据
         //一个可选参数:options该参数是一个对象,包含 {encoding, flag}。默认编码为二进制, flag 为 'w'
     })
     fs.readFileSync(file_name[, options])//同步读取带一个必选参数和一个可选参数,同上

    简单实现如下:

    var fs=require('fs');   //引入fs模块
    //异步读取
    fs.readFile('aaa.txt',function(err,data){
        if(err){
            console.log('读取错误');
        }else{
            console.log('异步读取:'+data.toString());//因为data返回二进制数据,需要使用toString()方法转换 或者 可选参数填入文字编码 utf-8
        }
    });
    fs.readFile('aaa.txt','utf-8',function(err,data){
        if(err){
            console.log('读取错误');
        }else{
            console.log('异步读取:'+data);
        }
    });
    //同步读取
    var data=fs.readFileSync('aaa.txt');
    console.log('同步读取:'+data.toString());
    var data=fs.readFileSync('aaa.txt','utf-8');
    console.log('同步读取:'+data);

    结果展示如下:

    05.png

    2. 写入文件 => writeFile(异步写入)和writeFileSync(同步写入)

    writeFile()直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容,文件不存在即创建新文件

    fs.writeFile(file_name,data[, options],function(err){
         //异步写入带三个必选参数和一个可选参数
         //三个必选参数:file_name文件名,data写入的文件信息,function一个回调函数,回调函数带的参数是写入错误信息
         //一个可选参数:options该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 'w'
     })
     fs.writeFile(file_name,data[, options])//同步写入带二个必选参数和一个可选参数,参数含义如上少一个回调函数
    var fs=require('fs');
    //异步写入
    fs.writeFile('aaa.txt','写入文件信息',function(err){
        console.log(err);
    })
    //同步写入
    fs.writeFileSync('aaa.txt','写入文件信息');

    结果展示:

    06.png

    4.对模块的小实践

    在这里将fs模块结合前面接触的http模块做一个小整合,写一个简单的从服务器创建到响应前台查找文件并且做对应返回的小demo:

    var http=require('http');
    var fs=require('fs');
    var querystring=require('querystring');
    var urlLib=require('url');
    http.createServer(function(req,res){
        //GET请求解析数据
        var obj=urlLib.parse(req.url,true);
        var url=obj.pathname;
        var GET=obj.query;
        //POST请求解析数据
        var str='';
        res.on('data',function(data){
            str+=data;
        })
        res.on('end',function(){
            var POST=querystring(str);
        })
        //文件请求
        var file_name='./www'+url;
        fs.readFile(file_name,function(err,data){
            if(err){
                res.write('404');//找不到文件返回404
            }else{
                res.write(data);//找到文件返回文件信息
            }
            res.end();
        })
    }).listen(8080)

    【推荐学习:《nodejs 教程》】

    以上就是nodejs中fs是什么意思的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nodejs
    上一篇:在javascript中排序的函数是什么 下一篇:ajax中async有什么作用
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• cmd显示node不是内部命令怎么办• 聊聊node中怎么借助第三方开源库实现网站爬取功能• 深入了解node.js中的module-alias(分享一些避坑方法)• 快速了解node16+如何配置对应的sass环境• 聊聊Node.js中如何实现Stream流(可读、可写、双工和转换流)
    1/1

    PHP中文网