【问题标题】:how to render an ejs template while looping over a document如何在遍历文档时呈现 ejs 模板
【发布时间】:2020-05-15 22:19:57
【问题描述】:

我已经设置了一条路线,使用该路线我可以获取在 firestore 数据库中的“用户”集合下注册的所有电子邮件。 在这条路线中,我正在渲染一个 ejs 模板并希望显示所有电子邮件。

我的路线:

    app.get('/check',(request,response)=>{
  db.collection('users').get().then(snapshot=>{
         snapshot.docs.forEach(doc=>{
          response.render('check',{user: doc.data().email})
         })        
      })
  })

我的 ejs 模板:

<h1>check welcome</h1>
<ol>
    <li><%=  user  %></li>
</ol>

模板被渲染,但我只是注册了第一封电子邮件,而不是全部。 在控制台中,我收到此错误:

>  Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
>      at ServerResponse.setHeader (_http_outgoing.js:526:11)
>      at ServerResponse.header (/home/chahat/Desktop/firebase 2.0/functions/node_modules/express/lib/response.js:771:10)
>      at ServerResponse.send (/home/chahat/Desktop/firebase 2.0/functions/node_modules/express/lib/response.js:170:12)
>      at done (/home/chahat/Desktop/firebase 2.0/functions/node_modules/express/lib/response.js:1008:10)
>      at tryHandleCache (/home/chahat/Desktop/firebase 2.0/functions/node_modules/ejs/lib/ejs.js:278:5)
>      at View.exports.renderFile [as engine] (/home/chahat/Desktop/firebase 2.0/functions/node_modules/ejs/lib/ejs.js:478:10)
>      at View.render (/home/chahat/Desktop/firebase 2.0/functions/node_modules/express/lib/view.js:135:8)
>      at tryRender (/home/chahat/Desktop/firebase 2.0/functions/node_modules/express/lib/application.js:640:10)
>      at Function.render (/home/chahat/Desktop/firebase 2.0/functions/node_modules/express/lib/application.js:592:3)
>      at ServerResponse.render (/home/chahat/Desktop/firebase 2.0/functions/node_modules/express/lib/response.js:1012:7)

我将不胜感激:)

【问题讨论】:

    标签: node.js firebase express google-cloud-firestore ejs


    【解决方案1】:

    您需要遍历文档,在 Javascript 中创建一个数据结构(可能是一个数组),然后将其传递给单个 res.render(),然后您的模板会遍历数据以为每封电子邮件创建一些内容。每个请求您只能调用一次res.render()

    【讨论】:

      猜你喜欢
      • 2012-01-29
      • 1970-01-01
      • 2014-04-14
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      相关资源
      最近更新 更多