NodeJS 如何将变量从一个EJS页面传递到另一个EJS页面

s71maibg  于 2024-01-07  发布在  Node.js
关注(0)|答案(5)|浏览(153)

你好
如何将变量从一个EJS页面传递到另一个EJS页面?
例如,我有这个页面

// insertion.ejs //



<!DOCTYPE html>
            <html lang=”en”>
            <head></head>
            <header>
                <% include ../views/header %>
            </header>
            <body>
            <script>
            var a="hello";
            </script>
            </body>
        </html>

字符串
这一页

// get.ejs //


        <!DOCTYPE html>
            <html lang=”en”>
            <head></head>
            <header>
                <% include ../views/header %>
            </header>
            <body>
            <script>
            var b 
            </script>
            </body>
         </html>


那么我怎样才能把变量a的内容传递给变量b呢

dm7nw8vv

dm7nw8vv1#

如果你的意思是当用户点击一个链接并从一个页面转到另一个页面时传递值,那么你可以使用一个查询参数并有一个这样的链接:

<a href="page2?name=value">link</a>

字符串
其中name是查询参数的名称,value是其值,可以由EJS模板使用适当的数据填充。
现在,您可以在路由处理程序中获取该参数,并将其与其他变量一起传递给模板,或者您可以通过页面上的客户端JavaScript访问它。
如果你想传递一个变量,你想让这个变量对用户可用,那么你需要使用一些会话存储,一个cookie或本地存储。
如果你想将变量从一个页面传递给另一个页面,那么你应该使用include将它包含在所有需要它的页面中,或者通过处理程序传递它。
从你的问题中并不清楚你的意图是什么,但这或多或少是你在所有情况下都能做的。

nnt7mjpx

nnt7mjpx2#

你可以在一个页面中建模绑定,但不能在两个单独的页面中建模绑定。为此,你必须制定自己的食谱,你有两种新颖的方法来做到这一点,首先使用socket.io,用这种方法让每个页面发布和订阅事件,每当一个页面发出一个事件,另一种方法是利用节点本地存储和缓存系统模块。对于本地存储,你可以memcache,node-cache只是做一个npm搜索。为了快速和直接的缓存使用redis,redis内存中的数据结构存储,用作数据库,缓存和消息代理。它支持数据结构,如字符串,哈希,列表,集合,排序集合与范围查询。
Happy Coding:):

a2mppw5e

a2mppw5e3#

1.首先,创建一个HTML标签,在其中传递一个值示例:

<p> <%= startingContent %>  </p>

字符串
(Here**startingContent**是在您想要数据的页面中创建的密钥)。
1.在xx.js文件中,您希望使用Key:value对从其中导出数据)

app.get("/", function(req, res) {
  res.render("home", {startingContent: homeStartingContent});


startingContent:是您在需要数据的页面中标识的密钥。
homeStartingContent:是您希望显示其值的变量。
编码快乐!

bvjveswy

bvjveswy4#

您可以使用LocalStorage概念。下面是如何使用本地存储的说明。https://www.w3schools.com/html/html5_webstorage.asp

pvcm50d1

pvcm50d15#

solution
将变量传递给include中的EJS partial <%- include('../partials/header',{variant:'compact'}); %>

相关问题