E JS переменная в JS файле в приложении nodejs с использованием express - PullRequest
0 голосов
/ 08 мая 2020

У меня есть объект user со свойством last_level. Я передаю его в своем маршруте express следующим образом:

app.get('/game', (req, res) => {
    res.render('main.ejs', { user: req.user })
})

Я хочу получить к нему доступ в моем файле сценария JS.

После некоторого исследования я попробовал это ...

var x = <%- user.last_level %>  

Но он не работает (не дает мне значения last_level, чтобы назначить его переменной x). Помогите мне в этом, пожалуйста.

Это вся моя функция -

window.onload = function () {
    var x = <%- user.last_level %> 
    if (x === "Easy") {
        console.log("easy")
    } else if (x === "Hard") {
        console.log("hard")
    } else if (x === "Pro") {
        console.log("pro")
    }
    console.log(x)
};

1 Ответ

1 голос
/ 08 мая 2020

Строгоизируйте переменную и посмотрите результаты. Используйте приведенный ниже код в своем шаблоне e js

 <script>
    window.onload = function () {
            var x =  <%- JSON.stringify(user.last_level) %>
            if (x === "Easy") {
                console.log("easy")
            } else if (x === "Hard") {
                console.log("hard")
            } else if (x === "Pro") {
                console.log("pro")
            }
            console.log(x)
        };
    </script>

Альтернативное решение:

 <script>
    window.onload = function () {
      <% if (user.last_level == 'Easy') { %>
        console.log("easy")
      <% } else if((user.last_level == 'Hard')  { %>
        console.log("hard")
      <% } else if(user.last_level == 'Pro')  { %>
        console.log("pro")
      <% } %>
    };
  </script>
...