var express = require('express');
var app = express();
app.set('view engine','ejs');
var ejs = require('ejs'),
people = ['geddy', 'neil', 'alex'],
html = ejs.render('<%= people.join(", "); %>', {people: people});
app.get('/' , function(req, res){
res.render("basic",{html});
});
app.listen( 3000,function() {
console.log(html);
});
&#34;基本&#34;是一个basic.ejs文件:
<html>
<title>Hello</title>
<body>
<%- html %>
</body>
</html>
这有效,但我想知道这一行究竟发生了什么
html = ejs.render('<%= people.join(", "); %>', {people: people});
声明{people:people}做什么?
谢谢
答案 0 :(得分:1)
{people: people}
将人员数组放在一个对象中,['geddy', 'neil', 'alex']
与关键字people
相关联。因此,当EJS呈现<%= people.join(", "); %>
时,它将转到您传递给函数({people: people}
)的对象,查找名为people
的密钥并使用与之关联的值。
答案 1 :(得分:0)
就您而言,您可以简单地替换为:
html = ejs.render('<%= people.join(", "); %>', {people: people});
与此:
html = people.join(", ");
唯一的区别是
<%=将值输出到模板(已转义HTML)
由于数组是安全的,因此不需要使用<%=