簡體   English   中英

從后端發送數據到前端公共 Javascript 文件

[英]Sending data from backend to frontend public Javascript file

我想將數據從我的后端發送到前端公共 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

我一直在嘗試很多,但無法找到解決方案。

我想將數據從后端發送到前端公共 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

我一直在嘗試很多,但無法找到解決方案。

您可以嘗試將 object 轉換為字符串,然后將其傳遞給腳本標簽。 然后您可以解析該字符串,將其轉換為 object,然后將其存儲為全局變量。 其他腳本標簽應該能夠訪問全局變量。

將您的 node.js 文件更改為:

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

在 your.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()將 object 轉換為字符串,然后將其發送到前端腳本,然后使用JSON.parse()再次轉換。 但是,由於嵌入代碼中的“/”(斜杠),我收到了JSON code 'T'錯誤,因此我不得不將嵌入代碼更改為前端腳本中處理的其他內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM