Экспорт схемы модели Sails JS как JSON - PullRequest
0 голосов
/ 03 февраля 2020

Цель состоит в том, чтобы взять схему модели и экспортировать ее куда-нибудь как JSON, взять ее json и создать динамическую c форму в Angular.

В основном основная проблема, которую я вижу здесь, состоит в том, чтобы получить модель и сгенерировать выходные данные, которые будут важны для генерации реактивной формы в Angular.

Например:

module.exports = {
  attributes: {
    nameOnMenu: { type: 'string', required: true },
    price: { type: 'string', required: true },
    percentRealMeat: { type: 'number' },
    numCalories: { type: 'number' },
  },
};

Таким образом, итоговый вывод будет выглядеть следующим образом:

[
  { nameOnMenu: { type: 'string', required: true }},
  { price: { type: 'string', required: true }},
  { percentRealMeat: { type: 'number',  required: false }},
  { numCalories: { type: 'number', required: false }},
]

На основе этого вывода я go пройду через все и сгенерирую форму.

1 Ответ

0 голосов
/ 04 февраля 2020

Я не уверен, что я действительно понимаю вопрос, который вы здесь задаете, но позвольте мне bash при попытке дать ответ.

Я могу придумать два способа, которыми вы могли бы достичь it:

1.) Используйте локальные данные, обработанные сервером , чтобы включить желаемый результат для использования во внешнем интерфейсе.

2.) Сделайте запрос API от внешнего интерфейса для желаемого результата.

В полученном контроллере / действии вы можете получить атрибуты модели различными способами. Я могу подумать об одном:

const { resolve } = require('path');
// Portable relative path based on code being in
// config/bootstrap.js file so adjust as required
const modelDefinition = require(resolve(__dirname, '..', 'api', 'models', 'NameOfModel.js')).attributes;
console.log(modelDefinition);
{ name:
  { type: 'string',
    required: true,
    validations: { isNotEmptyString: true },
    autoMigrations:
     { columnType: 'varchar(255)',
       unique: false,
       autoIncrement: false } },
  ...etc,
}

Для полноты, вам нужно учитывать несколько вещей, касающихся настроек модели и атрибутов модели , чтобы получить точный вывод, например, содержит ли таблица поле updatedAt. * ​​1020 *

В конечном счете, вы можете упорядочить эти данные, как считаете нужным, с помощью vanilla Javascript / Node, чтобы получить желаемый результат, но я оставлю это вам.

Как отметил другой пользователь, я также не уверен, что вы найдете официально поддерживаемое решение для полностью реактивных данных, используя Angular и паруса, я предполагаю, что это потребует немного техники, чтобы вы могли создать что-то подходящее для ваших нужд.

...