NodeJs - 如何在渲染的EJS中渲染EJS?

时间:2017-06-05 21:27:03

标签: javascript node.js web

这是我的想法:我想加载一个渲染的ejs文件作为我的主模板ejs文件的主体。有可能吗?

我的app.js:

router.get('/', function(req, res) {
  res.render('layout', {title: "Example title", body: _____________});
});

我尝试了以下但是没有用:

body: res.render('page1_body_content')

这将是我的主模板文件(layout.ejs)



<!doctype html>
<html>
	<head>
		<title>
			<% (title) ? title : '' %>
		</title>
		<link rel="stylesheet" href="https://v4-alpha.getbootstrap.com/dist/css/bootstrap.min.css">
		<link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.min.css">
		<link rel="stylesheet" href="css/style.css" />
	</head>
	<body>
		<%= body %>
	</body>
</html>
&#13;
&#13;
&#13;

我的第二个文件(page1_body_content.ejs)如下所示:

&#13;
&#13;
<b>hallo</b>
&#13;
&#13;
&#13;

结果应如下所示:

&#13;
&#13;
<!doctype html>
<html>
	<head>
		<title>
			Expample title
		</title>
		<link rel="stylesheet" href="https://v4-alpha.getbootstrap.com/dist/css/bootstrap.min.css">
		<link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.min.css">
		<link rel="stylesheet" href="css/style.css" />
	</head>
	<body>
		<b>Hallo</b>
	</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

试试这段代码: -

var ejs = require('ejs');
var compiled = ejs.compile(fs.readFileSync(__dirname + '/page1_body_content.ejs', 'utf8'));
var html = compiled();

res.render('layout', {title: "Example title", body: html });

将正文标记代码更新为: -

<body>
    <%- body %>
</body>