javascript - Express - 使用通过外部 JavaScript 文件中的渲染函数接收的对象
问题描述
我使用index.js文件中的 render 函数从 Express 传递一个对象:
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>
一个chat.js JavaScript 文件链接到我的chat.ejs文件:
<script defer type="text/javascript" src="/script/chat.js"></script>
但是,当我想在 div 标签内输出数据时,我的外部 JavaScript 不知道用户对象:
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);
如何在我的外部 JavaScript 中使用用户对象?
解决方案
在您的chat.ejs
中,您可以将用户公开为 JavaScript 对象:
<script>
var user = <%- JSON.stringify(user) %>;
</script>
然后您可以user
从您的代码中访问它。
推荐阅读
- javascript - 添加表单锁定时间限制
- python - 依赖库已被删除,但仍存在于运行 Django 应用程序的 Ubuntu Server 中
- python - 如果我选择 predict_proba 的结果而不是从 SVM 分类模型中进行预测,这是否意味着我在技术上使用的是 SVM 分类器?
- angular - 根据值更改 mat-progress-bar 颜色
- reactjs - 反应等待无状态孩子的渲染?
- google-places-api - Google Place API author_name 匿名问题
- java - 故障后如何正确重新定义/重新启动 Jet 的工作?
- c - 生成文件错误 *** 没有规则来生成“运行”所需的目标“3”。停止
- java - Bean 名称以字符串格式返回,调用方法或使用此类 bean 的变量
- rxjs - RxJS v6.3 管道 - 如何使用它?