NodeJs - Как визуализировать EJS в рендеринге EJS?

1

что моя идея: я хочу загрузить обработанный файл 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>

Мой второй файл (page1_body_content.ejs) выглядит так:

<b>hallo</b>

Результат должен выглядеть так:

<!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>
Теги:
web

1 ответ

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>
  • 0
    спасибо, пока работает Но сайт не показывает «Алло» как жирный текст. Это просто "<b> Hallo </ b>" и в исходном коде это выглядит так: & lt; b & gt; hallo & lt; / b & gt;
  • 0
    вы можете попробовать var compiled = ejs.compile (fs.readFileSync (__dirname + '/page1_body_content.ejs'));
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню