EJS过滤中的逻辑

时间:2016-08-10 02:09:51

标签: node.js express ejs

我正在尝试使用EJS(在我的index.ejs文件中)进行一些简单的过滤。

  1. 如果object为NULL,则不显示HTML
  2. 如果对象字段"级别"包含价值" 1"但不是值" 2",用HTML显示
  3. <% for(var i=0; i<mydb.length; i++) {%> <li><%= mydb[i].menuitem %></li> <% } %>

    我使用快递,所以如果有用,这是我的server.js

    app.get('/', (req, res) => {
      db.collection('mydb').find().toArray((err, result) => {
        if (err) return console.log(err)
        // renders index.ejs
        res.render('index.ejs', {mydb: result})
      })
    })
    

1 个答案:

答案 0 :(得分:0)

过滤数据在数据进入模板之前。

// server.js

result = result.fillter (function(data){
  return data !== null ;
})
res.render('index.ejs', {db_areas: result})

// index.ejs

<% mydb.forEach(function(data){ %>
<%   if ( level.includes("1") && !level.includes("2") ) { %>

       <html></html>

<%   } %>
<% }) %>

8/12 eddited:

  

过滤数据在数据进入模板之前。

您应该在过滤数据后放置res.render('index.ejs', {db_areas: result})。所以你的表达式顺序应如下所示:

// server.js

result = result.fillter (function(data){
  return data !== null ;
})
res.render('index.ejs', {db_areas: result})