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
Привет всем. Решил понемногу делать сервер в связке JS+JS. Возник вопрос как условный логинпароль из окна регистрации передать на серверную часть
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
1,831
200
5
Привет! Для передачи данных с клиентской стороны (VueJS) на серверную сторону (Node.js) можно использовать HTTP запросы. Например, с помощью библиотеки Axios вы можете отправить POST запрос на сервер с данными логина и пароля из формы регистрации. В серверном коде (Node.js) вы можете обработать этот запрос и сохранить полученные данные. Надеюсь, это поможет вам разобраться!
 

youngBeaver

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

JavaScript:
// cef
mp.trigger("ui:server:event", "login", ["login", "password"])

// client-side
mp.events.add("ui:server:event", (eventName, data) => {
    if (eventName === "" || !data[0]) {
        return mp.console.logInfo("[ui:server:event] the arguments do not meet the requirements")
    }

    mp.events.callRemote(eventName, data)
})

// server-side

mp.events.add("login", (data) => {
})
 

Sublimate

Участник портала
11 Июн 2023
129
6
55
А как это смешать с vue?
 

youngBeaver

Гений
high coder
24 Янв 2023
1,146
448
171
24

Sublimate

Участник портала
11 Июн 2023
129
6
55
Можешь пожалуйста дать пример кода с mp.trigger, как это может выглядеть в реальности?
 

youngBeaver

Гений
high coder
24 Янв 2023
1,146
448
171
24

Sublimate

Участник портала
11 Июн 2023
129
6
55
Появилась новая проблема: Вместо логина и пароля -


JavaScript:
mp.trigger("ui:server:event", "register", [username, password]);


JavaScript:
mp.events.add("register", (data) => {
    console.log(data)
})
 

youngBeaver

Гений
high coder
24 Янв 2023
1,146
448
171
24
если эвент "mp.events.add("register")", то первым аргументом всегда идет игрок на сервере.
UPD. Опять я хуйню сморозил, исходя из консоли, это 100% сервер. В таком случае, ты первым аргументом получаешь игрока и называешь его data. В таком случае ты должен сначала принимать player (игрок, который инициировал эвент) и data (массив данных, которые ты передал). Ребят, хватит все на форум постить. Про pendingRPC я нашел ответ в другой теме.
 
Реакции: m0v1l3

Sublimate

Участник портала
11 Июн 2023
129
6
55
Можешь дать пожалуйста, как это должно выглядеть?
 

Vermilion

Высший разум
high coder
29 Сен 2021
1,010
559
181
34

youngBeaver

Гений
high coder
24 Янв 2023
1,146
448
171
24
no no no, listen listen...
Данил, где типизация?
Вадим, это же обычный JS исходя из примеров. Так то я с C# не слазию, поэтому про типизацию помним всегда.
А тебе нужно через JSON.stringify перевести массив в строку и в консоли посмотреть содержание. А еще лучше не отвлекать на протяжении получаса, я доте хочу выиграть((
 
Реакции: Vermilion

Sublimate

Участник портала
11 Июн 2023
129
6
55
Понял, GL))
 
Реакции: youngBeaver

Sublimate

Участник портала
11 Июн 2023
129
6
55
Короче тут я передаю login и password в data
JavaScript:
mp.trigger("ui:server:event", "register", login, password);

А тут я пытаюсь их достать

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

mp.events.add("register", (player, data) => {
    try {console.log(JSON.stringify(data[0]))} catch (e) {console.log(e)}
})

mp.events.add("register", (player, data) => {
    try {console.log(JSON.stringify(data[0].login))} catch (e) {console.log(e)}
})

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

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

Но ни-ши-ша, достаётся только логин(Везде, где я написал только для login подразумевается что и для пароля тоже было(Например data.login, data.password))
 

youngBeaver

Гений
high coder
24 Янв 2023
1,146
448
171
24
а ты проверь на CEF, что ты именно передаешь в переменной password.