Почему json-schema-faker возвращает латиницу для всего? - PullRequest
0 голосов
/ 22 октября 2018

Используя следующую схему:

и очень простой package.json с единственной зависимостью json-schema-faker (0.5.0.rc16), когда я запускаю следующий код, я вижу вывод, показанный навнизу (пример запуска)

jsf = require('json-schema-faker');
var schema = {
  "type": "object",
  "properties": {
    "users": {
        "type": "array",
        "minItems": 3,
        "maxItems": 5,
        "items": {
          "type": "object",
          "properties": {
              "id": {
                  "type": "integer",
                  "unique": true,
                 "minimum": 1
              },
              "firstName": {
                  "type": "string",
                  "faker": "name.findName"
              },
              "lastName": {
                  "type": "string",
                  "faker": "name.lastName"
              },
              "email": {
                "type": "string",
                "faker": "internet.email"
              }
          },
         "required": ["id", "firstName", "lastName", "email"]
        }
      }
    }, 
    "required": ["users"]  
};

var mylist = jsf.generate(schema);
console.log("mylist: ", mylist);

ВЫХОД

mylist:  { users:
[ { id: 46919647,
   firstName: 'commodo ut deserunt',
   lastName: 'magna',
   email: 'ex minim irure' },
 { id: 36864773,
   firstName: 'aliquip elit laborum',
   lastName: 'co',
   email: 'nisi Ut laboris dolore' },
 { id: 62231151,
   firstName: 'adipisicing id reprehenderit exercitation',
   lastName: 'tempor culpa deserunt Excepteur nisi',
   email: 'est enim' },
 { id: 57427341,
   firstName: 'eu ullamco reprehenderit mollit',
   lastName: 'cupidatat ut non',
   email: 'id dolore sed et' } ] }

Почему все на латыни?Что я тут не так делаю.

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Чтобы добавить ответ @ Джо.Я предпринял следующие шаги

  1. npm install --save-dev faker json-schema-faker
  2. В файле генератора данных я расширил json-schema-faker примерно так
import faker from 'faker'

jsf.extend('faker', () => {return faker});
const json = JSON.stringify(jsf.generate(mockUserSchema));
0 голосов
/ 09 ноября 2018

То же самое происходило со мной.Я следовал вместе с курсом Cory House «Построение среды разработки Java-сценариев» по ​​множественному взгляду.Чтобы быть в курсе всех зависимостей, я обновился до последней версии json-schema-faker 0.5.0-rc16.

Это сломало поколение json, и я все получал по-латински.Когда я вернулся к версии 0.3.6, я правильно генерировал имя, фамилию и адрес электронной почты.

Вот схема, которую я использовал:

  export const schema = {
  "type": "object",
  "properties": {
    "users": {
      "type": "array",
      "minItems": 3,
      "maxItems": 5,
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "unique": true,
            "minimum": 1
          },
          "firstName": {
            "type": "string",
            "faker": "name.firstName"
          },
          "lastName": {
            "type": "string",
            "faker": "name.lastName"
          },
          "email": {
            "type": "string",
            "faker": "internet.email"
          }
        },
        "required": ["id", "firstName", "lastName", "email"]
      }
    }
  },
  "required": ["users"]
};

и вот соответствующаяjava-скрипт:

import jsf from 'json-schema-faker';
import {schema} from './mockDataSchema';
import fs from 'fs';
import chalk from 'chalk';

const json = JSON.stringify(jsf(schema));

fs.writeFile("./src/api/db.json", json, function (err) {
  if (err) {
    return console.log(chalk.red(err));
  } else {
    console.log(chalk.green("Mock data generated."));
  }
});

OUTPUT

{
    "users": [{
            "id": 49569377,
            "firstName": "Gerald",
            "lastName": "Turcotte",
            "email": "Eda_Lemke66@hotmail.com"
        },

        {
            "id": 84739169,
            "firstName": "Jerad",
            "lastName": "Gerhold",
            "email": "Reynold.Ryan@yahoo.com"
        },

        {
            "id": 78507259,
            "firstName": "Hayden",
            "lastName": "Schultz",
            "email": "Kassandra64@yahoo.com"
        }
    ]
}

Но, сказав все это и приступив к работе сейчас, и, немного погуглив, нашел это

0.5.0-RC2 возможная ошибка с фейкером date.past # 275

Поэтому я внес эти изменения в package.json:

"json-schema-faker": "^0.5.0-rc16",
"faker": "^4.1.0",

и уничтожил мои node_modulesПапка и файл package-lock.json и выполнили чистую установку npm.

Я изменил приведенный выше код и перезапустил скрипт с успешными результатами.

jsf.extend('faker', () => require('faker'));
const json = JSON.stringify(jsf.generate(schema));

Отчет об ошибкезаявляет, что

Привет, поскольку с версии 0.5.x все внешние генераторы (случайные, фейкерные и т. д.) не являются встроенными, поэтому вам необходимо зарегистрироваться как документы

Надеюсь, это работает для вас.

...