Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从后端发送到前端公共Javascript文件_Javascript_Node.js_Frontend_Backend - Fatal编程技术网

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

将数据从后端发送到前端公共Javascript文件,javascript,node.js,frontend,backend,Javascript,Node.js,Frontend,Backend,我想将数据从后端发送到前端公共javascript文件。我知道使用ejs,但我有一个专用的javascript文件,我想向该文件发送数据 以下是我的后端节点代码: router.get('/', isAuth, function (req, res) { User.find({ id: req.user[0].id }).populate("tweets").populate("tags").exec(function (err, user) {

我想将数据从后端发送到前端公共javascript文件。我知道使用ejs,但我有一个专用的javascript文件,我想向该文件发送数据

以下是我的后端节点代码:

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>

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

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

将节点js文件更改为:

res.render("dashboard", {user: JSON.stringify(user)});
在.ejs文件中,在
之前添加脚本标记:


const str=“”;
const obj=str.replace(/&34;/gi,“\”);
现在,您可以在其他脚本标记中使用obj

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

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

它可以工作,但现在它将其视为字符串。还有,你能告诉我这是干什么用的吗
str.replace(/";/gi,'\'')
Ejs,stringify将所有引号转换为/",因此您必须将它们转换回。使用JSON.parse(obj)将字符串转换为对象
<script>
    const str = "<%= name %>";
    const obj = str.replace(/&#34;/gi, '\'');
</script>
<script>alert(obj);</script>