首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Uncaught : fs.writeFile不是函数

Uncaught : fs.writeFile不是函数
EN

Stack Overflow用户
提问于 2021-05-31 10:14:11
回答 2查看 5.6K关注 0票数 0

我在我的程序中得到了错误Uncaught TypeError: fs.writeFile is not a function,其中我只想写一些东西到一个JSON文件中。fs.readFileSync函数正常工作,但由于某种原因,fs.writeFile没有工作。这是我的代码:

HTML:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1>Hello World!</h1>
    <button id="button">Write Something</button>
    <script src="./app.js"></script>
  </body>
</html>

JavaScript:

代码语言:javascript
复制
const fs = require("fs");
const data = fs.readFileSync("db.json", "utf8");
const db = JSON.parse(data);

console.log(db);

document.getElementById("button").onclick = () => {
  fs.writeFile("db.json", "test", () => {
    console.log("Written file!");
  });
};

杰森:

代码语言:javascript
复制
["something1", "something2"]

为了让你知道,我在用包裹作为我的打包机。请帮我解释一下为什么这不起作用。

EN

回答 2

Stack Overflow用户

发布于 2021-05-31 10:19:42

Node.js fs模块不是用JavaScript编写的。它是用C/C++编写的Node.js的核心部分。它不会在web浏览器中运行,也不能绑定到JS文件中。

(请注意,readFileSync可以是内嵌,它只是在绑定文件时读取文件,而不是在运行时读取文件)。

如果您想要生成一个JSON文件,那么可以:

  • 编写web服务(将JSON写入服务器上的文件),然后向其发出HTTP请求或
  • 将数据转换为可下载URL (以便将其保存到用户的下载文件夹)。
票数 2
EN

Stack Overflow用户

发布于 2021-05-31 10:17:49

您将无法在浏览器中使用writeFile,即使您使用了绑定器,因为这是Node.js而不是browser API。绑定器不会在浏览器的构建中嵌入本机Node.js函数,因为这是两个不同的执行环境。

在浏览器中,您不能在未经用户同意的情况下任意触发磁盘上的文件写入,因此您必须实际触发一个文件下载

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67771853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档