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

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

Sublimate

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

Vermilion

Высший разум
high coder
29 Сен 2021
1,011
559
181
34
Правильно, потому что ты передаешь 2 параметра, а пытаешься принять только один. Замени (player, data) на (player, login, password)
 
Реакции: youngBeaver

Sublimate

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

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 coder
29 Сен 2021
1,011
559
181
34
Либо оберни отправку данных из CEF в объект. Не работаю с стандартными методами, точно не скажу
 

youngBeaver

Гений
high coder
24 Янв 2023
1,146
448
171
24
Вадим нашел ошибку быстрее меня, я не подумал, что ты не полностью взял мой код. В моем примере я данные передавал в скобках, что образовало массив. Но в твоем случае, ты передаешь 2 переменные, а на сервере принимаешь лишь один.
 

Sublimate

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

youngBeaver

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

Sublimate

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

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

Vermilion

Высший разум
high coder
29 Сен 2021
1,011
559
181
34
Нет, если передаешь объект , то на сервере он будет data.login и data.password
 

Sublimate

Участник портала
11 Июн 2023
129
6
55
Нет, если передаешь объект , то на сервере он будет 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 coder
29 Сен 2021
1,011
559
181
34
Объект а не массив
 

Sublimate

Участник портала
11 Июн 2023
129
6
55
Объект а не массив
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
129
6
55
Возвращает 0
 

X-Clusiv

Модератор
Команда форума
high coder
4 Окт 2020
683
311
161
30
Дружище)
В общем.
Браузер:
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

Модератор
Команда форума
high coder
4 Окт 2020
683
311
161
30
А еще проще, чтобы общаться на прямую с сервером из браузера, можно написать что-то по типу.

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)
})