使用fs.writeFile将JavaScript代码写入js文件

3

我正在尝试将JavaScript代码写入使用Nodejs fs模块的js文件中。我成功地写了一个json文件,但是在如何将JavaScript代码写入其中方面感到困惑。

 fs.writeFile("config.json", JSON.stringify({name: 'adman'tag: 'batsman',age: 25}), 'utf8',{ flag: "wx" }, function(err) {
    if (err) {
      return console.log(err);
    }
    console.log("The file was saved!");
  });

我需要创建一个包含以下数据的 .js 文件。
const cricketers = [
    {
        name: 'adman',
        tag: 'batsman',
        age: 25
    },
    // other objects
]

module.exports = cricketers ;
2个回答

6

有两件事情:

  1. 如果你只想要能够使用 let someData = require('someFile.json'); 的方式来导入json文件并将其视为Js对象,Nodejs已经支持这样做。
  2. 否则我不知道是否有一个库可以完全满足你的需求,但是...

你可以自己实现。fs.writeFile函数接受一个字符串参数,因此你只需要生成要写入文件的字符串即可。

let someData = [{name: 'adman', tag: 'batsman', age: 25}];
let jsonData = JSON.stringify(someData);
let codeStr = `const cricketers = ${jsonData}; module.exports = cricketers;`;
fs.writeFile("someFile.js", codeStr, 'utf8',{ flag: "wx" }, function(err) {
  if (err) {
    return console.log(err);
  }
  console.log("The file was saved!");
});

显然,这仅适用于非常具体的用例,但关键是可以通过简单(或复杂...)的字符串操作完成。

3

使用字符串模板

const data = `const cricketers = ${JSON.stringify(yourArray)};
module.exports = cricketers;
`

其中yourArray是一个对象数组


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接