Лучше ли хранить объекты, содержащие информацию, в отдельном файле .js или в моей базе данных? - PullRequest
0 голосов
/ 21 апреля 2019

Я создаю RPG-игровое веб-приложение и хотел бы хранить заранее определенную информацию о навыках и особенностях.Т.е. массив объектов, определяющих такие вещи, как «Закаленный в боях, дает +2 силы» и «Безжалостное прошлое дает -1 соц.».

Я создаю это, используя Express и NodeJS для моего приложения, Mongoose и MongoDB длямоя база данных и HTML в качестве внешнего интерфейса.Я относительно новичок в этом, поэтому извиняюсь, если это простой вопрос!

Первоначально я думал о создании схемы Mongoose для соответствующих атрибутов, то есть:

const attributeSchema = new Schema({
    type: String, //i.e. trait, skill, background
    description: String, //flavortext
    modifiers: {
        stats: {
            strength: Number,
            social: Number,
            //etc...
        },
        skills: {
            melee: Number,
            ballistics: Number,
            //etc...
        }
    }
});

Затем я бысоздайте файл .js для запуска, который создает и сохраняет всю информацию в MongoDB через вышеуказанную схему, тем самым «заполняя» базу данных.Если мне когда-нибудь понадобится добавить новые черты / навыки (например, в будущем я введу новую черту «Вонючие подмышки» или что-то, что вызывает -3 социальную связь), мне придется создавать новые сценарии, чтобы добавить их.... если нет лучшего способа сделать это, которого я не изучил!

Моя другая идея состояла в том, чтобы просто поместить все это в статический файл .js как один объект, который я мог бы require при необходимостиили как переменная app.locals.Например,

const attributes = {
  traits: [
    {
      name: 'Coffee Breath',
      description: 'Try brushing your teeth sometime!',
      modifiers: [{social: -1}]
    },
    {
      name: 'Echoes of the Void',
      description: 'The voices, they whisper to you...',
      modifiers: [{sanity: -999}, {intelligence: +2}]
    }
  ],
  //etc...
}

Пожалуйста, дайте мне знать, если есть рекомендуемый способ сделать это, или если что-то мне не хватает / может быть лучше!

1 Ответ

0 голосов
/ 21 апреля 2019

Для простого проекта лучше хранить такие вещи в файле json.

Учитывая, что ваши персонажи не наследуют свойства друг от друга, настройка MongoDB, на мой взгляд, не самый мудрый выбор..

Кроме того, часто настройка Mongoose и базы данных требует усилий и является чрезмерно сложной для данного варианта использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...