This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Как из VueJS передать значение переменной на серверную часть

Sublimate

Участник портала
11 Июн 2023
131
6
75
В каком плане "что именно"?
 

Vermilion

Искусственный Интеллект
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,876
1,174
181
35
Правильно, потому что ты передаешь 2 параметра, а пытаешься принять только один. Замени (player, data) на (player, login, password)
 
Реакции: youngBeaver

Sublimate

Участник портала
11 Июн 2023
131
6
75
И в серверной части тоже?

JavaScript:
const mysqlc = require('./mysql.js');


mp.events.add("register", (player, login, password) => {
    try {console.log(JSON.stringify(data.login), JSON.stringify(data.password))} catch (e) {console.log(e)}
    // mp.trigger("ui:server:event", "register", login, password);
    //Получить логин и пароль
    
})
 

Vermilion

Искусственный Интеллект
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,876
1,174
181
35
Либо оберни отправку данных из CEF в объект. Не работаю с стандартными методами, точно не скажу
 

youngBeaver

Гений
BackEnd developer
24 Янв 2023
1,254
485
191
Вадим нашел ошибку быстрее меня, я не подумал, что ты не полностью взял мой код. В моем примере я данные передавал в скобках, что образовало массив. Но в твоем случае, ты передаешь 2 переменные, а на сервере принимаешь лишь один.
 

Sublimate

Участник портала
11 Июн 2023
131
6
75
Я думал оно массивом передаётся, поэтому и пытался через data[x] итд
 

youngBeaver

Гений
BackEnd developer
24 Янв 2023
1,254
485
191
Я думал оно массивом передаётся, поэтому и пытался через data[x] итд
mp.trigger - согласно вики принимает через запятую после названия эвента неограниченное количество параметров. Поэтому без скобок ты туда мог еще штук 10 передать и все бы они шли отдельными аргументами.
 

Sublimate

Участник портала
11 Июн 2023
131
6
75
Извиняюсь, поплыл, в клиентской
:

JavaScript:
mp.events.add("ui:server:event", (eventName, data) => {
    try {
        mp.events.callRemote(eventName, data)
    } catch (e) {
        console.log(e)
    }
})
 

Vermilion

Искусственный Интеллект
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,876
1,174
181
35
Нет, если передаешь объект , то на сервере он будет data.login и data.password
 

Sublimate

Участник портала
11 Июн 2023
131
6
75
Нет, если передаешь объект , то на сервере он будет data.login и data.password
Немного не соображаю, как

JavaScript:
mp.events.add("register", (player, data, login, password) => {
    try {console.log(JSON.stringify(data), JSON.stringify(data.password))} catch (e) {console.log(e)}
    
})

Если data.password до undefined, если password то тоже undefined
 

Vermilion

Искусственный Интеллект
High developer
BackEnd developer
FrontEnd developer
29 Сен 2021
1,876
1,174
181
35
Объект а не массив
 

Sublimate

Участник портала
11 Июн 2023
131
6
75
Объект а не массив
JavaScript:
mp.trigger("ui:server:event", "register", { login: login, password: password });

JavaScript:
mp.events.add("register", (player, data, login, password) => {
    try {
        console.log(JSON.stringify(data));
    } catch (e) {
        console.log(e);
    }
});
 

Sublimate

Участник портала
11 Июн 2023
131
6
75
Возвращает 0
 

X-Clusiv

Модератор
Команда форума
Moderator
4 Окт 2020
771
366
161
31
Дружище)
В общем.
Браузер:
JavaScript:
mp.trigger("youEventInClient", arg1, arg2)
На клиенте:
JavaScript:
mp.events.add("youEventInClient", ("youEventInClient") => {
    mp.events.callRemote("youEventInServer", arg1, arg2);
}
На сервере:

JavaScript:
mp.events.add("youEventInServer", (player, arg1, arg2) => {
    console.log(arg1);
    console.log(arg2);
}
 

X-Clusiv

Модератор
Команда форума
Moderator
4 Окт 2020
771
366
161
31
А еще проще, чтобы общаться на прямую с сервером из браузера, можно написать что-то по типу.

JavaScript:
//CEF
window.callServerEvent = (event, ...args) => {
  try {
    mp.trigger('callServerEvent', event, JSON.stringify(args))
  } catch (e) {
    console.warn(e)
  }
}
//Client

mp.events.add("callServerEvent", (event, args) => {
  try{
    args = JSON.parse(args);
    mp.events.callRemote(event, ...args);
  } catch (e){
  }
};)

А после уже можно вызывать серверные евенты напрямую из браузера.


JavaScript:
//CEF
callSeverEvent("youSeverEvent", login, password)

//Server
mp.events.add("youServerEvent", (player, login, password) => {
    console.log(login);
    console.log(password)
})
 

Similar threads