“Fs.writeFile 不是函数”

"Fs.writeFile is not a function"

提问人:codingCode 提问时间:11/16/2023 最后编辑:VLAZcodingCode 更新时间:11/16/2023 访问量:53

问:

我想将从另一个文件接收的数据写入一个 JSON 文件,我可以在 Python 脚本中再次使用该文件。但是,我的IDE返回以下错误:

TypeError:fs.writeFile 不是函数

我试过用 、 和 代替 。constvarimportrequirefsfs-extra

file.mjs文件:

let currentSkillLevel = "Beginners"; 
let skillToBeAcquired ="Python";

const fs = import('fs');

let data = {};
data["Current Skill level"] = currentSkillLevel;
data["Skill To Be Acquired"] = skillToBeAcquired;

let inputJson = JSON.stringify(data);

fs.writeFile("input.json", inputJson);
JavaScript JSON 文件系统

评论

2赞 Rory McCrossan 11/16/2023
你真的试过运行代码吗?您的 IDE 可能使用了错误的 linter - 例如。一个普通的 Javascript 版本。
0赞 codingCode 11/16/2023
@RoryMcCrossan,我该如何检查?我已经在Visual Studio Code中运行了代码。确切的错误是:fs.writeFile(“input.json”, inputJson);^ TypeError: fs.writeFile is not a function at .../file.mjs:12:4 at ModuleJob.run (node:internal/modules/esm/module_job:194:25) Node.js v18.17.0
0赞 VLAZ 11/16/2023
import('fs');- 动态导入给你一个承诺,一个也是如此。它不是模块。使用静态导入或导入。fsawait

答:

1赞 Michele De Falco 11/16/2023 #1

这对我有用

let currentSkillLevel = 'Beginners';
let skillToBeAcquired = 'Python';

const fs = require('fs');

let data = {};
data['Current Skill level'] = currentSkillLevel;
data['Skill To Be Acquired'] = skillToBeAcquired;

let inputJson = JSON.stringify(data);

fs.writeFile('input.json', inputJson, (err) => {
  if (err) console.log(err);
  else {
    fs.readFileSync('input.json', 'utf8');
  }
});

如果要将语法与 import 一起使用,则代码如下

let currentSkillLevel = 'Beginners';
let skillToBeAcquired = 'Python';

import { writeFile, readFileSync } from 'fs';

let data = {};
data['Current Skill level'] = currentSkillLevel;
data['Skill To Be Acquired'] = skillToBeAcquired;

let inputJson = JSON.stringify(data);

writeFile('input.json', inputJson, (err) => {
  if (err) console.log(err);
  else {
    readFileSync('input.json', 'utf8');
  }
});

请记住将其添加到 package.json 中

"type": "module"

评论

0赞 codingCode 11/16/2023
哦,我的上帝,谢谢你!