nodejs文件操作方法

需要注意的是nodejs作为服务端而不是客户端的应用,require方法会失效,需要引入module

import { createRequire } from 'module';
const require = createRequire(import.meta.url);

不管是写入还是删除,需要注意的是Sync同步操作,这意味着 JavaScript 代码将停止执​​行,直到该方法运行完成。

写入文件

const fs = require('fs');

const content = 'Some content!';

fs.writeFile('/Users/joe/test.txt', content, err => {
  if (err) {
    console.error(err);
  }
  // file written successfully
});to

同步写入fs.writeFileSync()

const fs = require('fs');

const content = 'Some content!';

try {
  fs.writeFileSync('/Users/joe/test.txt', content);
  // file written successfully
} catch (err) {
  console.error(err);
}ye

也可以使用fs/promises模块提供的fsPromises.writeFile()方法

const fs = require('fs/promises');

async function example() {
  try {
    const content = 'Some content!';
    await fs.writeFile('/Users/joe/test.txt', content);
  } catch (err) {
    console.log(err);
  }
}
example();

默认情况下这种写入会覆盖原有内容,你可以使用flag参数了修改这一选项

fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => {});

flag参数

Flag描述
r以读取模式打开文件。如果文件不存在抛出异常。
r+以读写模式打开文件。如果文件不存在抛出异常。
rs以同步的方式读取文件。
rs+以同步的方式读取和写入文件。
w以写入模式打开文件,如果文件不存在则创建。
wx类似 'w',但是如果文件路径存在,则文件写入失败。
w+以读写模式打开文件,如果文件不存在则创建。
wx+类似 'w+', 但是如果文件路径存在,则文件读写失败。
a以追加模式打开文件,如果文件不存在则创建。
ax类似 'a', 但是如果文件路径存在,则文件追加失败。
a+以读取追加模式打开文件,如果文件不存在则创建。
ax+类似 'a+', 但是如果文件路径存在,则文件读取追加失败。

追加写入

使用fs.appendFile()fs.appendFileSync()方法

const fs = require('fs');

const content = 'Some content!';

fs.appendFile('file.log', content, err => {
  if (err) {
    console.error(err);
  }
  // done!
});

使用fsPromises.appendFile()方法

const fs = require('fs/promises');

async function example() {
  try {
    const content = 'Some content!';
    await fs.appendFile('/Users/joe/test.txt', content);
  } catch (err) {
    console.log(err);
  }
}
example();

文件的删除

使用unlink()

const fs = require("fs");

const path = "./picture.jpg";

fs.unlink(path, function (err) {
  if (err) {
    console.error(err);
  } else {
    console.log("File removed:", path);
  }
});

使用 unlinkSync()同步删除

const fs = require("fs");

const path = "./picture.jpg";

try {
  fs.unlinkSync(path);
  console.log("File removed:", path);
} catch (err) {
  console.error(err);
}

原文地址:https://nodejs.dev/en/learn/writing-files-with-nodejs/

Post Comment