onClick функция в EJS

111
09 января 2022, 06:50

Возникла проблема вызова функции по хэндлеру onClick в ejs из get запроса. Функция должна лежать на сервере ибо будут выполнятся операции с бд и т.д. Как я пытался это сделать:

app.get('/opencase', ensureAuthenticated, function (req, res) {
    const values = Object.values(caseData.caseDataJson);
    const randomValue = values[parseInt(Math.random() * values.length)]
    function openCase() {
        switch (randomValue.name) {
            case "100 gold":
                console.log(randomValue.description)
                break;
            case "1000 gold":
                console.log(randomValue.description)
                break;
            case "10000 gold":
                console.log(randomValue.description)
                break;
            default:
                console.log("Oh, shit.")
                break;
        }
    };
    res.render('opencase', {
        user: req.user,
        clickHandler: openCase(),
        caseName: randomValue.name,
        caseDescription: randomValue.description,
    });
});
    <button onclick="<%= clickHandler %>">Open</button>

Но функция вызывается не при клике, а при загрузке странице.

Answer 1

Это вызов функции:

...
clickHandler: openCase(),
...

Это назначение функции в качестве обработчика:

...
clickHandler: openCase,
...
READ ALSO
Почему не добавились элементы в массив? [дубликат]

Почему не добавились элементы в массив? [дубликат]

Пытаюсь добавить словари с массив itemsElems:

93
ограничение строки в js

ограничение строки в js

есть скрипт который должен ограничивать строку по кол-во символов и в конце троеточие добавлять, но добавляет только троеточие

120
Ajax подгрузка мобильного меню (hc-offcanvas-nav)

Ajax подгрузка мобильного меню (hc-offcanvas-nav)

Всех приветствую! Как сделать Ajax подгрузку, чтобы при клике по кнопке, меню загружалось, а не загружалось при загрузке сайта? Код добавил на codepen,...

172
Отображение шрифтов Google на canvas

Отображение шрифтов Google на canvas

Имеется приложение, на главной странице канвас с текстомВ приложении есть функционал смены языка (русский, английский)

149