NodeJs简明教程(4)

NodeJs简明教程将从零开始学习NodeJs相关知识,助力JS开发者构建全栈开发技术栈!node

本文是NodeJs简明教程的第四篇,将介绍NodeJs文件系统模块相关的基本操做。服务器

fs 模块提供了一个 API,用于以模仿标准 POSIX 函数的方式与文件系统进行交互。异步

读取文件

文件系统的大部分函数都存在 异步调用同步调用 两种形式。函数

异步

异步模式下,回调函数的第一个参数总为 Error 对象,且函数通常无返回值。学习

  1. 若是为null,则本次调用未出错
  2. 若是不为null,证实本次调用出错

新建 index.js 文件:ui

const fs = require('fs');

fs.readFile('./index.js', { encoding: 'utf8' }, (err, data) => {
    if (err) {
        console.error('读取文件失败', err);
        return;
    }
    console.log(data);
})
复制代码

readFile的第二个参数若是不指定编码,回调函数取到的data对象是Buffer,须要手动转字符串。读取文本文件能够指定编码,可是读取二进制文件(好比读取图片文件)编码

  1. 在当前目录执行 node index.jsspa

  2. 输出以下:code

    const fs = require('fs');
    
    fs.readFile('./index.js', { encoding: 'utf8' }, (err, data) => {
        if (err) {
            console.error('读取文件失败', err);
            return;
        }
        console.log(data);
    })
    复制代码

同步模式

同步模式下,返回值为调用函数的结果,若是调用失败,将抛出Error对象:cdn

const fs = require('fs');

try {
    const data = fs.readFileSync('./index.js', { encoding: 'utf8' });
    console.log(data);
} catch (e) {
    console.log('读取失败', e)
}
复制代码

输出数据和同步模式一致。

能够看到同步模式和异步模式下处理错误的方式是不一样的。

各位读者在生产中尽可能不要使用同步函数,不然会阻塞事件循环。 固然,有一种状况例外,须要同步读取配置文件而后才启动服务器的这种状况是能够的。

写入文件

新建index.js,代码以下:

const fs = require('fs');

const data = 'Hello World';

fs.writeFile('./a.txt', data, (error) => {
    if (error) {
        console.error('保存失败', error);
        return;
    }
    console.log('保存成功');
})
复制代码
  1. 执行node index.js
  2. 输出保存成功,同时当前目录会多出内容为Hello World的文本文件。

经常使用API

  1. fs.copyFile(src,dest[,flags],callback) 复制文件
  2. fs.stat(path[,options],callback) 读取文件状态
  3. fs.unlink(path,callback) 删除文件
  4. fs.rename(oldPath,newPath,callback) 重命名文件
  5. fs.mkdir(path[,options],callback) 新建目录
  6. fs.rmdir(path,callback) 删除目录

结语

文件系统的学习暂时到此为止,用到的时候你们能够详细查看文件,文件系统的函数调用方式和本文的示例都是相似的,各位读者能够触类旁通。

欢迎关注Nodejs之路公众号得到持续更新以及在线答疑帮助。

二维码
相关文章
相关标签/搜索