如果输入字符串具有任何参数,则Faker.fake()不起作用

时间:2018-10-15 21:32:43

标签: javascript faker

我正在尝试使用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

1 个答案:

答案 0 :(得分:1)

Faker无法解析JSON中所需的参数。因此参数必须用双引号引起来。

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

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 })}}');