EJS渲染参数含义

时间:2016-04-28 07:48:11

标签: javascript node.js ejs

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}做什么?

谢谢

2 个答案:

答案 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)

由于数组是安全的,因此不需要使用<%=