将数据从后端发送到前端 public Javascript 文件
Sending data from backend to frontend public Javascript file
我想将数据从我的后端发送到前端 public javascript 文件。我知道使用 ejs,但我有一个专用的 javascript 文件,我想将数据发送到该文件。
这是我的后端 nodejs 代码:
router.get('/', isAuth, function (req, res) {
User.find({ id: req.user[0].id }).populate("tweets").populate("tags").exec(function (err, user) {
res.render("dashboard", {user: user});
// res.send(user);
});
});
下面是我如何从正文标记结束之前的 dashboard.ejs 调用脚本文件:
<script src="/dashboard/scripts/script.js"></script>
这是我希望存储从后端发送的数据的地方。
const ext = data_from_backend
我已经尝试了很多,但找不到解决方案。
您可以尝试将您的对象转换为字符串,然后将其传递给脚本标签。
然后您可以解析该字符串,将其转换为对象,然后将其存储为全局变量。
其他脚本标签应该可以访问全局变量。
将您的节点 js 文件更改为:
res.render("dashboard", {user: JSON.stringify(user)});
在您的 .ejs 文件中,在 <script src="/dashboard/scripts/script.js"></script>
:
之前添加一个脚本标签
<script>
const str = "<%= name %>";
const obj = str.replace(/"/gi, '\'');
</script>
现在您可以在其他脚本标签中使用 obj
<script>alert(obj);</script>
所以,我解决了问题的核心,但也从这里的答案中得到了帮助。这是我所做的。我首先使用 JSON.stringfy()
将对象转换为字符串,然后将其发送到前端脚本,然后使用 JSON.parse()
再次转换它。但是,由于嵌入代码中的“/”(斜杠),我收到了 JSON code 'T'
错误,因此我不得不将嵌入代码更改为前端脚本中处理的其他内容。
我想将数据从我的后端发送到前端 public javascript 文件。我知道使用 ejs,但我有一个专用的 javascript 文件,我想将数据发送到该文件。
这是我的后端 nodejs 代码:
router.get('/', isAuth, function (req, res) {
User.find({ id: req.user[0].id }).populate("tweets").populate("tags").exec(function (err, user) {
res.render("dashboard", {user: user});
// res.send(user);
});
});
下面是我如何从正文标记结束之前的 dashboard.ejs 调用脚本文件:
<script src="/dashboard/scripts/script.js"></script>
这是我希望存储从后端发送的数据的地方。
const ext = data_from_backend
我已经尝试了很多,但找不到解决方案。
您可以尝试将您的对象转换为字符串,然后将其传递给脚本标签。 然后您可以解析该字符串,将其转换为对象,然后将其存储为全局变量。 其他脚本标签应该可以访问全局变量。
将您的节点 js 文件更改为:
res.render("dashboard", {user: JSON.stringify(user)});
在您的 .ejs 文件中,在 <script src="/dashboard/scripts/script.js"></script>
:
<script>
const str = "<%= name %>";
const obj = str.replace(/"/gi, '\'');
</script>
现在您可以在其他脚本标签中使用 obj
<script>alert(obj);</script>
所以,我解决了问题的核心,但也从这里的答案中得到了帮助。这是我所做的。我首先使用 JSON.stringfy()
将对象转换为字符串,然后将其发送到前端脚本,然后使用 JSON.parse()
再次转换它。但是,由于嵌入代码中的“/”(斜杠),我收到了 JSON code 'T'
错误,因此我不得不将嵌入代码更改为前端脚本中处理的其他内容。