Express - использовать объект, полученный через функцию рендеринга, во внешнем файле JavaScript - PullRequest
0 голосов
/ 03 марта 2019

Я передаю объект из Express, используя функцию рендеринга, как в моем файле index.js :

app.get("/chat", function(req, res){
  res.render("chat", {user: req.user});
});

Я могу использовать его в моем chat.ejs файл:

<% if(!user){ %>
  <li><a href="/auth/login">Connexion</a></li>
<% } else{ %>
  <li><a href="/profile">Profil</a></li>
  <li><a href="/chat">Chat</a></li>
  <li><a href="/auth/logout">Déconnexion</a></li>
<% } %>

<div id="output"></div>

A chat.js Файл JavaScript связан с моим chat.ejs файлом:

<script defer type="text/javascript" src="/script/chat.js"></script>

Однако мой внешний JavaScript не знает объект пользователя, когда я хочу вывести данные внутри тега div:

typingFeedback.innerHTML = "<img src=" + user.thumbnail + "alt='Profile Image />";
let newP = document.createElement("p");
let newTxt = document.createTextNode(data.message);
newP.appendChild(newTxt);
output.appendChild(newP);

Вот изображение того, как организованы мои файлы: My Files

Как я могу использовать объект пользователя в моем внешнем JavaScript?

1 Ответ

0 голосов
/ 03 марта 2019

В вашем chat.ejs вы можете представить пользователя как объект JavaScript:

 <script>
  var user = <%- JSON.stringify(user) %>;
</script>

, тогда вы можете получить к нему доступ как user из своего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...