我正在使用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',
},
},
};
此状态对象属于当前用户,所以我想知道是否可以将整个状态对象存储到数据库中的用户,并在每次用户启动应用程序时都请求它,但是似乎不复杂的解决方案。我不知道从哪里开始。
您对我有什么建议?