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

时间:2017-04-11 10:51:20

标签: javascript node.js express

您好,我如何将一个变量从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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

如果您想在用户点击链接并从一个页面转到另一个页面时传递该值,则可以使用查询参数并使用以下链接:

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

其中name是查询参数的名称,value是其值,可以使用适当的数据填充EJS模板。

现在您可以在路由处理程序中获取该参数,并将其传递给包含其他变量的模板,或者您可以通过页面上的客户端JavaScript访问它。

如果您希望在某种意义上传递您希望该变量可供用户使用的变量,那么您需要使用一些会话存储,cookie或本地存储。

如果您想将变量从一个页面传递给另一个所有用户只是为了减少重复,那么您应该使用include将其包含在需要它的所有页面中,或者由处理程序传递它。

从你的问题来看,这不是很清楚你的意图是什么,但这或多或少都是你在所有场景中可以做的。

答案 2 :(得分:0)

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

快乐编码:):

答案 3 :(得分:0)

  1. 首先,创建要在其中传递值的HTML标签 例如:
     <p> <%= startingContent %>  </p> 

(这里 startingContent 是在您想要数据的页面中创建的键)。

  1. 您要从中导出数据的xx.js文件中,使用键:值对)
  app.get("/", function(req, res) {
  res.render("home", {startingContent: homeStartingContent});

startingContent:是您在页面中标识所需数据的密钥。

homeStartingContent:是您希望显示其值的变量。

快乐编码!