如何以有意义的方式将Redux数据存储在MongoDB中?

时间:2019-05-27 10:22:17

标签: node.js reactjs mongodb redux electron

我正在使用Electron,React和Redux开发应用程序。我到了我的应用程序在本地工作的阶段。因此,我想创建它的服务器端,以便人们可以在数据库(mongoDB)中注册和存储他们的数据。

我在redux中的状态对象看起来像这样:

const defaultState = {
  currentMessage: '',
  selectedLanguage: 1,
  selectedCategory: 1,
  selectedSubcategory: 11,
  selectedMessage: '',
  selectedDialogCategory: '',
  selectedDialog: '',
  playing: false,
  languages: {
    1: {
      id: 1,
      name: 'فارسی',
      dialogCategories: {
        1: {
          id: '1',
          name: 'Sample dialogs',
          dialogs: {
            1: {
              id: '1',
              name: 'Bocsánat',
              isChecked: true,
              play: '2',
              messages: {
                1: {
                  text: 'Jaj, bocsánat!',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat1.wav',
                  length: 3000,
                  person: 1,
                  id: 1,
                },
                2: {
                  text: 'Nem történt semmi.',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat2.wav',
                  length: 1000,
                  person: 2,
                  id: 2,
                },
                3: {
                  text: 'Megütötte magát?',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat3.wav',
                  length: 1000,
                  person: 1,
                  id: 3,
                },
                4: {
                  text: 'Nem, nem fáj.',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat4.wav',
                  length: 1000,
                  person: 2,
                  id: 4,
                },
                5: {
                  text: 'Bocsánatot kérek!',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat5.wav',
                  length: 1000,
                  person: 1,
                  id: 5,
                },
                6: {
                  text: 'Semmi baj.',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat6.wav',
                  length: 1000,
                  person: 2,
                  id: 1,
                },
                7: {
                  text: 'Tudja, csak egy szerencsétlen külföldi vagyok.',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat7.wav',
                  length: 3000,
                  person: 1,
                  id: 7,
                },
                8: {
                  text: 'Hova valósi?',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat8.wav',
                  length: 1000,
                  person: 2,
                  id: 8,
                },
                9: {
                  text: 'A Szíriuszra.',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat9.wav',
                  length: 1000,
                  person: 1,
                  id: 9,
                },
                10: {
                  text: 'A Szíriuszra?',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat10.wav',
                  length: 1000,
                  person: 2,
                  id: 10,
                },
                11: {
                  text: 'Oda.',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat11.wav',
                  length: 1000,
                  person: 1,
                  id: 11,
                },
                12: {
                  text: 'Akkor nem külföldi, hanem földönkívüli. F-ö-l-d-ö-n-k-í-v-ü-l-i.',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat12.wav',
                  length: 4000,
                  person: 2,
                  id: 12,
                },
                13: {
                  text: 'Igen. Egy szerencsétlen földönkívüli vagyok. Mindent elrontok. Jaj, bocsánat!',
                  audio: 'C:/Users/z633770/AppData/Roaming/Gilgames/data/Bocsanat/bocsanat13.wav',
                  length: 8000,
                  person: 1,
                  id: 13,
                },
              },
            },
            2: {
              id: '2',
              name: 'Találkozás',
              isChecked: true,
              play: 'both',
              messages: {
                1: {
                  text: 'Szevasz!',
                  audio: '',
                  length: 1000,
                  person: 1,
                  id: 1,
                },
                2: {
                  text: 'Cső!',
                  audio: '',
                  length: 1000,
                  person: 2,
                  id: 2,
                },
                3: {
                  text: 'Mizu?',
                  audio: '',
                  length: 1000,
                  person: 1,
                  id: 3,
                },
                4: {
                  text: 'Semmi. Veled?',
                  audio: '',
                  length: 1000,
                  person: 2,
                  id: 4,
                },
                5: {
                  text: 'Megvagyok.',
                  audio: '',
                  length: 1000,
                  person: 1,
                  id: 5,
                },
                6: {
                  text: 'Akkor jó.',
                  audio: '',
                  length: 1000,
                  person: 2,
                  id: 1,
                },
                7: {
                  text: 'Megyünk holnap biliárdozni?',
                  audio: '',
                  length: 2000,
                  person: 1,
                  id: 7,
                },
                8: {
                  text: 'Persze.',
                  audio: '',
                  length: 1000,
                  person: 2,
                  id: 8,
                },
              },
            },
          },
        },
      },
      categories: {
        1: {
          id: '1',
          name: '1-es kategória',
          isSelected: true,
          isChecked: false,
          subcategories: {
            11: {
              id: '11',
              name: 'Főnevek',
              isSelected: false,
              isChecked: false,
              messages: {
                113: {
                  id: '113',
                  title: 'Szeretet',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
                114: {
                  id: '114',
                  title: 'Törődés',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
                115: {
                  id: '115',
                  title: 'Béke',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
                116: {
                  id: '116',
                  title: 'Csodálat',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
                117: {
                  id: '117',
                  title: 'Varázslat',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
              },
            },
            12: {
              id: '12',
              name: 'Köszönések',
              isSelected: true,
              isChecked: false,
              messages: {
                121: {
                  id: '121',
                  title: 'Szevasz!',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
                122: {
                  id: '122',
                  title: 'Szia!',
                  audio: '',
                  isChecked: true,
                  repeat: 1,
                },
                123: {
                  id: '123',
                  title: 'Cső!',
                  audio: '',
                  isChecked: true,
                  repeat: 1,
                },
              },
            },
          },
        },
        2: {
          id: '2',
          name: '2-es kategória',
          isSelected: false,
          isChecked: false,
          subcategories: {
            21: {
              id: '21',
              name: 'Bókok',
              isSelected: true,
              isChecked: false,
              messages: {
                212: {
                  id: '212',
                  title: 'Gyönyörű vagy!',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
              },
            },
          },
        },
      },
    },
    2: {
      id: 2,
      name: 'português',
      categories: {
        1: {
          id: '1',
          name: 'Deutsch',
          isSelected: true,
          isChecked: false,
          subcategories: {
            11: {
              id: '11',
              name: 'Teszt',
              isSelected: false,
              isChecked: false,
              messages: {
                113: {
                  id: '113',
                  title: 'Teszt',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
              },
            },
            12: {
              id: '12',
              name: 'Teszt2',
              isSelected: true,
              isChecked: false,
              messages: {
                121: {
                  id: '121',
                  title: 'Teszt!',
                  audio: '',
                  isChecked: false,
                  repeat: 1,

                },
              },
            },
          },
        },
        2: {
          id: '2',
          name: 'Ja, Deutsch.',
          isSelected: false,
          isChecked: false,
          subcategories: {
            21: {
              id: '21',
              name: 'Bókok',
              isSelected: true,
              isChecked: false,
              messages: {
                212: {
                  id: '212',
                  title: 'Du bist hübsch!',
                  audio: '',
                  isChecked: false,
                  repeat: 1,
                },
              },
            },
          },
        },
      },
    },
  },
  options: {
    messageOptions: {
      frequency: 3000,
      duration: 1000,
      enableAudio: true,
      fontColor: '#2e5a1c',
      fontSize: '25px',
    },
    language: 'Hungarian',
    transparentWindow: true,
    messageWindow: {
      width: '300px',
      height: '200px',
    },
  },
};

此状态对象属于当前用户,所以我想知道是否可以将整个状态对象存储到数据库中的用户,并在每次用户启动应用程序时都请求它,但是似乎不复杂的解决方案。我不知道从哪里开始。

您对我有什么建议?

0 个答案:

没有答案