首页 > 解决方案 > 如果输入字符串有任何参数,Faker.fake() 不起作用

问题描述

我正在尝试使用 fakejs 实现一些数据生成,但faker.fake如果我的模板有任何参数则不起作用,结果如下:

const c = faker.fake('{{random.number({ min: 0, max: 10, precision: 1 })}}'); //does not work, getting NaN
const z = faker.fake('{{date.between("2015-01-01", "2015-12-31")}}'); //does not work, getting 'invalid date'

但是,这有效:

const a = faker.fake('{{random.number}}'); //works
const b = faker.random.number({ min: 0, max: 10, precision: 1 }); //works

const x = faker.date.past(); // works
const y = faker.fake('{{date.past}}'); // works

知道如何解决吗?我正在使用fakerjs 4.1.0版

标签: javascriptfaker

解决方案


Faker 无法解析它需要在 JSON 中的参数。所以参数必须用双引号括起来。

它不会记录有关它的警告,只是假设它是一个字符串(下面的函数部分):

try {
  params = JSON.parse(parameters)
} catch (err) {
  // since JSON.parse threw an error, assume parameters was actually a string
  params = parameters;
}

这对我有用。

faker.fake('{{random.number({ "min": 0, "max": 10, "precision": 1 })}}');


推荐阅读