无法从mlab渲染我的数据。我的数据库已连接,但我的ejs模板不起作用

时间:2018-07-24 03:34:01

标签: node.js express ejs

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>MY APP</title>
</head>
<body>
May Node and Express be with you.

<ul class="logins">
&lt; for(const i=0; i &lt;login.length; i++) { &gt;
<li class="login">
<span>&lt; login[i].firstName &gt;</span>
<span>&lt; login[i].age &gt;</span>
</li>
&lt; } &gt;
</ul>

<form action="/login" method="POST">
<input type="text" placeholder="First Name" 
name="firstName">
<input type="text" placeholder="Last Name" 
name="lastName">
<input type="text" placeholder="Age" name="age">
<button type="submit">Submit</button>
</form>
</body>
</html>

我的HTML表单是相同的,只是没有ejs模板。这是我的ejs模板代码:

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

不确定我是否以错误的方式渲染模板,或者我是否以正确的方式使用代码。

2 个答案:

答案 0 :(得分:0)

<ul class="logins">
&lt; login.forEach(data) { &gt;
<li class="login">
<span>&lt; data.firstName &gt;</span>
<span>&lt; data.age &gt;</span>
</li>
&lt; } &gt;
</ul>

<ul class="logins">
&lt; for(const i=0; i &lt;login.length; i++) { &gt;
<li class="login">
<span>&lt; login.firstName &gt;</span>
<span>&lt; login.age &gt;</span>
</li>
&lt; } &gt;
</ul>

我认为“登录”是一个对象。 toArray方法可能无法正常工作。 因此,请提供该代码,如果您遇到错误,请告诉我。

答案 1 :(得分:0)

似乎您使用<>来显示变量并评估代码。要显示,必须使用<%-%>或<%=%>。要为您进行评估,您必须使用<%%>

正确的代码如下:

<ul class="logins">
<% for(const i=0; i &lt;login.length; i++) { %>
    <li class="login">
        <span><%- login[i].firstName %></span>
        <span><%- login[i].age %></span>
    </li>
<% } %>
</ul>