【问题标题】:Can faker be used to create fake JSON datafaker 可以用来创建假的 JSON 数据吗
【发布时间】:2017-04-08 14:50:42
【问题描述】:

我想知道是否有办法设置虚假数据(信息),例如 nameemail,并将其存储在 JSON 文件中。

我知道 faker 可以与 node 和 NPM 一起使用在 JS 中创建假数据,但是 JSON 呢?

【问题讨论】:

  • 如果你想要一个基于浏览器的快速工具来生成一些json数据,试试json-generator.com
  • 遗憾的是我希望能够使用 node 和 npm 来做到这一点
  • 所以你要做的就是把faker结果保存到一个json文件中?

标签: node.js json npm faker


【解决方案1】:

另外一个example 生成十个用户并将他们写入data.json 文件。

employees.js

let faker = require('faker');
let fs = require('fs');

function generateEmployees() {
  let employees = [];
  for (let id = 1; id <= 10; id++) {
    let firstName = faker.name.firstName();
    let lastName = faker.name.lastName();
    let email = faker.internet.email();
    employees.push({
      id: id,
      first_name: firstName,
      last_name: lastName,
      email: email,
    });
  }
  return { employees: employees };
}
module.exports = generateEmployees;

let dataObj = generateEmployees();
fs.writeFileSync('data.json', JSON.stringify(dataObj, null, '\t'));

使用 JSON 服务器提供虚假数据

$ json-server employees.js

现在您可以点击Resources链接查看结果。


更新

@le_m 的启发,您可以在不使用 for 循环的情况下生成虚拟数据:

let faker = require('faker');
let fs = require('fs');

const generateEmployee = () => {
  return {
    id: faker.random.uuid(),
    first_name: faker.name.firstName(),
    last_name: faker.name.lastName(),
    email: faker.internet.email(),
  };
};

const generateEmployees = (numUsers) => {
  return Array.from({ length: numUsers }, generateEmployee);
};

let dataObj = generateEmployees(10);
fs.writeFileSync('data.json', JSON.stringify(dataObj, null, '\t'));

然后,只需使用以下命令启动您的服务器:

$ node employees.js

【讨论】:

    【解决方案2】:
    var faker = require('faker');
    var fs = require('fs');
    
    var data = {};
    
    data.name = faker.name.findName();
    data.email = faker.internet.email();
    
    fs.writeFile('data.json', JSON.stringify(data), (err) => {
      if (err) throw err;
      console.log('It\'s saved!');
    });
    

    【讨论】:

    • 这会将文件保存为 json 文件,但不是 json 格式 :-(
    • 有没有办法设置它,以便我可以说向 json 文件添加 10 个新用户记录
    • 当然,有办法。从一个空的结果数组开始,并在循环内生成伪造数据。每次推送到结果数组。然后当循环完成时,将字符串化的结果写入您的文件。
    • 谢谢,这真的很有帮助
    • 祝你好运。另外,请查看此问题以从循环推送到数组。 stackoverflow.com/questions/12491101/…
    猜你喜欢
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 2020-04-30
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多