【问题标题】:Uncaught TypeError: fs.readFile is not a function未捕获的类型错误:fs.readFile 不是函数
【发布时间】:2020-02-21 02:26:26
【问题描述】:

Node.js、Webpack

在这个项目中使用了webpack,这里安装了FS。 此代码需要读取文件,但返回错误“Uncaught TypeError: fs.readFile is not a function”

const bookForm = document.querySelector(".book-form"); 
const select = document.querySelector(".select"); const fs = require("fs");

export function abc() {   bookForm.addEventListener("submit", e => {
    console.log(select.options[select.selectedIndex].text);
    e.preventDefault();
fs.readFile("file.txt", function(error, data) {
    console.log("file read");
    if (error) throw error; 
    console.log(data);  });
    }); }

【问题讨论】:

  • 是 Node.js 还是浏览器?
  • 是的,webpack里有收集到的前端项目(语法错误见谅)

标签: node.js webpack fs


【解决方案1】:

您无法在浏览器中导入fs 模块,因为浏览器环境无权访问用户的文件系统。 fs 仅在 Node.js 上下文中可用(在服务器上),但在客户端(浏览器)上不可用。

如果你想从浏览器发送文件到服务器,你可以使用<input type="file">,让用户手动选择他们要发送的文件。如果要将服务器文件的内容发送到浏览器,可以使用 HTTP 通信 (AJAX),也可以在服务器端计算的 HTML 模板中呈现它的内容。

【讨论】:

  • 谢谢,但是,我只想从表单输入中获取一些信息并将其放入 txt 文件。我该怎么办?
  • 您应该制作一个 HTML 表单并通过浏览器提交,然后在服务器 (Node.js) 上您必须处理传入的数据并将其保存为文本文件。您可以使用像 Express 这样的网络框架,它内置了大部分功能。
【解决方案2】:

在您的配置文件中,您可以设置上传 txt 文件等资产的方式。然后你只需使用 require('file.txt') 来加载它 - 不需要使用 fs。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-19
  • 1970-01-01
  • 2019-06-06
  • 2019-05-24
  • 2021-12-15
  • 2019-10-26
  • 2016-06-27
相关资源
最近更新 更多