【问题标题】:How to pass value from req.render() to ejs , then from that ejs to another如何将值从 req.render() 传递给 ejs ,然后从那个 ejs 传递到另一个
【发布时间】:2022-01-05 07:30:25
【问题描述】:

server.js

app
  .route("/")
  .get((req, res) => {
    res.render("home", { tofirstejs: usercount });
  })

home.ejs

<%- include('partials/header.ejs', {tolastejs:tofirstejs}); -%>
<%- include('partials/signin.ejs'); -%>
<%- include('partials/footer.ejs'); -%>

header.ejs

<body>
  <div id="alert"></div>
  <h3>  <%= tolastejs%> user</h3>  //want inital value of usercount here
</body>

我想知道如何通过多个 ejs 传递值。我可以通过减少中间的ejs并直接调用最后一个来解决这个问题,但我的意图是学习。因此,如果有任何方法可以实现这一点。请告诉我。

【问题讨论】:

  • 您的代码显示res.render('home'),但您没有显示home.ejs。您还显示了first.ejslast.ejs,但它们中的任何一个都无法呈现,并且它们之间也没有任何联系。我们无法按照此处的代码流来查看您要完成的工作。
  • 您不会通过多个.ejs 文件传递​​数据,这些文件未作为同一渲染的一部分进行渲染。要执行此类操作,您可能必须使用会话并将数据放入会话中,然后从会话中获取数据以将其传递给其他渲染。
  • @jfriend00 很抱歉,实际上 first = home 和 last = header ejs 文件。这是我这边的一个错误。好吧,如果是这样的话。然后我会直接调用标题。谢谢

标签: node.js ejs render


【解决方案1】:

其实你不需要再写了,我会增加一个额外的错误处理步骤

app.get('/', (req, res , next) => {

res.render('home',{tofirstejs: usercount},  (error, html) =>{
if(error){ 
 console.log(error) 
 next(error)
 return
 }

  res.send(html)   
 })
})

在视图文件中

<%- include('partials/header.ejs') %>
<%- include('partials/signin.ejs'); %>
<%- include('partials/footer.ejs'); %>

tofirstejs 可用于所有 3 个部分

【讨论】:

  • 成功了。非常感谢。
猜你喜欢
  • 2018-10-02
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 1970-01-01
  • 2016-11-05
相关资源
最近更新 更多