当我尝试读取文件夹时,fs.readdir不起作用

2022-05-31 00:00:00 javascript fs

我正在尝试从文件夹‘data’中读取文件,下面的代码应该可以正常工作,但我不能理解为什么会出现此错误:

Uncaught TypeError: _fs.readdir is not a function

import fs from "fs";

// Have tried the below option too instead of import sytax
// const fs = require("fs");

const dataFolder = "./data/";

// Option #1
fs.readdir(dataFolder, function (_err, files) {
  files.forEach((file) => console.log(file));
});

// OUTPUT
// Uncaught TypeError: _fs.readdir is not a function

// Option #2
fs.readdirSync(dataFolder).forEach((file) => console.log(file));

// OUTPUT
// Uncaught TypeError: _fs.readdirSync is not a function

如有任何帮助,我们将不胜感激。我以为是捆绑包导致的,但我将其更改为webpack,它仍然给出相同的错误。


解决方案

我在回答自己的问题,以防对其他像我一样正在从前端编码转向理解node.js的人有所帮助。

很难理解有些模块不是为浏览器设计的,fs就是其中之一,而当您尝试使用‘Required’时,这是另一个障碍。因此,如果像我一样,您在这里是因为您试图在链接到您的html的Java脚本中使用fs从您的本地计算机或服务器读取内容,并希望它显示在浏览器上,那么它将不起作用。

这有点令人沮丧,但一旦你意识到这一点,它就有意义了。因此,尽管这可能不是你想要的答案,但我想我还是分享一下,这样你就不会浪费更多的时间,试图让它发挥作用。

了解node.js以及如何在node.js上使用fs会更好地利用时间..:-)..

相关文章