【发布时间】:2020-06-25 09:27:39
【问题描述】:
我是网络开发的新手,我正在开发一个用于教育目的的简单网络应用程序。我正在使用 Express、mongoDB 和 EJS。
我已经设置了一个可以正确呈现 ejs 文件的路由,并且在该文件中,我可以访问一个名为 currentUser 的值。我设置了 res.locals 以便 currentUser 可用,并且我通过将其呈现为页面顶部的文本来仔细检查。
问题是我有一个 <script src="..."> 正在处理一些逻辑,并且链接在 new.ejs 文件的底部。我正在尝试从该脚本中访问 app.locals.currentUser,但控制台给了我一个未捕获的参考错误。脚本的其余部分按预期运行,但我只是弄清楚如何从其中访问currentUser。
我确信这是一个非常简单的问题,我很难找到必须是显而易见的答案。我在这里问是因为我已经搜索了几个小时,但我似乎无法以一种我能理解的方式来构建搜索查询。如何将该对象放入我的脚本中?
编辑:为清楚起见添加一些 sn-ps:
在new.ejs,我有:
<div class="container">
<h1 class="text-center"> Create new Request for <em><strong><%= currentUser.username %></strong></em> </h1>
<div class="row justify-content-center">
<div class="col-12 col-lg-4">
...
<script src="/javascripts/search.js"></script>
在顶部,用户名显示得很好。但是,在我的search.js 中,我正在尝试调用
console.log("Username is: " + currentUser);
当然,这是行不通的。很明显,我正在尝试以错误的方式访问 currentUser,但我似乎无法弄清楚如何解决它。
【问题讨论】:
-
你应该分享试图访问
currentUser的sn-p -
currentUser是一个服务器端变量。如果您想与客户端共享值并在客户端执行一些条件渲染,请注意这听起来像是潜在的漏洞。在服务器上渲染这个条件并只将结果发送给客户端会更安全。 -
@MattD.Webb 我继续添加了一些 sn-ps,感谢您的提示。
-
@WiktorZychla 这正是我正在寻找的信息!您能否提供有关如何执行此操作的任何信息?
-
如果您希望我们帮助您在服务器上处理
currentUser,请粘贴您的search.js(只需一个minimal, reproducible example)。
标签: javascript node.js express ejs