Написать код javascript в js, используя fs.writeFile - PullRequest
1 голос
/ 02 июня 2019

Я пытаюсь написать код JavaScript в js с модулем Nodejs fs. Мне удалось написать файл 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 ]

2 голосов
/ 02 июня 2019

Две вещи:

  1. Если все, что вы хотите сделать, это уметь let someData = require('someFile.json'); Nodejs уже поддерживает требующие файлы json и обрабатывает их как объекты Js.
  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!");
});

Очевидно, что это работает только для очень конкретного случая использования, но дело в том, что это можно сделать с помощью простой (или сложной ...) манипуляции со строками.

2 голосов
/ 02 июня 2019

использование шаблонов строк

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

Где yourArray - массив объектов

...