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

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

November

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

Sublimate

Участник портала
11 Июн 2023
158
10
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);
    //Получить логин и пароль
    
})
 

November

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

youngBeaver

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

Sublimate

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

youngBeaver

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

Sublimate

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

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

November

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

Sublimate

Участник портала
11 Июн 2023
158
10
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
 

November

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

X-Clusiv

Гений
4 Окт 2020
781
374
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

Гений
4 Окт 2020
781
374
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