【Node.js】读取文件

作者: 德育处主任 | 来源:发表于2019-06-23 08:07 被阅读5次
    微信订阅号:Rabbit_svip

    在node.js里,读取文件分为 同步读取异步读取

    • 同步读取: fs.readFileSync()
    • 异步读取: fs.readFile()

    可以看到,同步读取其实只是多了 Sync 一个单词,很好记。

    准备

    微信订阅号:Rabbit_svip

    以上是文件目录结构,其中 readMe.md 是准备好的文件(用来读取的文件)。

    fs.js 是代码文件。

    微信订阅号:Rabbit_svip

    以上是 readMe.md 的内容。


    同步读取

    let fs = require('fs');
    
    let readMe = fs.readFileSync('readMe.md', 'utf8');
    console.log(readMe);
    
    微信订阅号:Rabbit_svip

    let fs = require('fs'); 这句话是用来引入系统提供的文件模块。

    fs.readFileSync() 有2个参数。

    • 第一个参数:要读取的文件名。
    • 第二个参数:编码格式。

    把读取到的内容赋给一个变量。

    以上就是 同步读取文件 的用法。


    异步读取

    let fs = require('fs');
    
    fs.readFile('readMe.md', 'utf8', (err, data) => {
        if(err) throw err;
        console.log(data);
    })
    

    img(输出内容)

    异步读取的方法和同步是差不多的。只是传参不一样。

    fs.readFileSync() 有3个参数。

    • 第一个参数:要读取的文件名。
    • 第二个参数:编码格式。
    • 第三个参数:读取结果
      • err:出现的错误都会通过 err 这个参数返回(比如找不到文件等)。
      • data:读取文件成功后的返回结果。

    以上就是 异步读取文件 的使用方法。


    异步测试

    let fs = require('fs');
    
    fs.readFile('readMe.md', 'utf8', (err, data) => {
        if(err) throw err;
        console.log(data);
    })
    
    console.log(123);
    

    在异步读取文件之后加了一句 输出123

    如果是同步的话,代码是一行一行执行的,所以 “123” 肯定是最后输出。

    但在异步中,读取是需要时间去处理的。所以在这段非常短的处理时间内,代码会继续做之后的事情。
    所以这里会先输出“123”,再输 readMe.md 里的内容。

    微信订阅号:Rabbit_svip

    读取文件这个功能是一个比较重要的功能。
    比如客户端发来一个访问,后端有时候需要返回一个html页面回去,这时通过读取文件就能实现这种功能。
    当然,要返回html页面的话并不像上面例子中短短几句就能完事的。

    相关文章

      网友评论

        本文标题:【Node.js】读取文件

        本文链接:https://www.haomeiwen.com/subject/rcwcxctx.html