Дополнительно
ejs 'partial is not defined'
Хорошо, у меня есть в основном статическая домашняя страница, но я хотел бы иметь частичные представления, которые для навигации, нижнего колонтитула и т.д. Я использую ejs и это выглядит следующим образом:
мой контроллер: home.js
// Dependencies
var express = require('express');
module.exports = {
get: function(req, res) {
app.set('view engine', 'ejs');
var model = {
layout:'home',
};
res.render('home');
}
};
В моем каталоге views есть nav, home и footer - все .ejs
Тогда фактический html-файл, очищенный от текста, будет выглядеть следующим образом.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" >
<title>Tom Jones</title>
<!-- CSS -->
<link rel="stylesheet" href="/css/home.css" type="text/css" media="screen" >
</head>
<body>
<%- partial('nav') %>
<!--content part -->
<div id="showcontainer">
<section>
</section>
</div>
<div id="maincontainer">
<section>
</section>
</div>
</body>
</html>
Проблема При тестировании я сталкиваюсь с ошибкой partial is not defined. Я пробовал требовать ejs, но безуспешно.
28
2
Как сказал @Pickels, Partial был удален в версии 3.x. Однако последняя версия EJS предоставляет механизм для включения "частей", который называется "include":
https://github.com/visionmedia/ejs#includes
Следующая функция будет работать как замена вашей старой функции partial(). Для полной поддержки Express 3.x вам потребуется внести изменения в другие функции, но по большей части это работает хорошо (даже лучше - меньше кода и больше производительности).
Partial был удален в версии 3.x. Теперь предоставление partials зависит от шаблонизатора.