将数据从后端发送到前端公共Javascript文件



我想将数据从后端发送到前端公共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);
});
});

以下是我如何在body标记结束前从dashboard.ejs调用脚本文件:

<script src="/dashboard/scripts/script.js"></script>

这就是我希望从后端发送的数据存储的地方。

const ext = data_from_backend

我已经尝试了很多,但都没能找到解决方案。

您可以尝试将对象转换为字符串,然后将其传递给script标记。然后,您可以解析该字符串,将其转换为和对象,然后将其存储为全局变量。其他脚本标记应该能够访问全局变量。

将节点js文件更改为:

res.render("dashboard", {user: JSON.stringify(user)});

在.ejs文件中,在<script src="/dashboard/scripts/script.js"></script>:之前添加一个脚本标记

<script>
const str = "<%= name %>";
const obj = str.replace(/&#34;/gi, ''');
</script>

现在您可以在其他脚本标签中使用obj

<script>alert(obj);</script>

因此,我解决了问题的核心,但也得到了这里答案的帮助。以下是我所做的。我首先使用JSON.stringfy()将对象转换为字符串,然后将其发送到前端脚本,然后使用JSON.parse()再次转换。但是,由于嵌入代码中的"/"(斜杠(,我收到了JSON code 'T'错误,因此我不得不将嵌入代码更改为前端脚本中处理的其他代码。

最新更新