Подтвердить что ты не робот

Частичный ejs не определен '

Хорошо, у меня есть статичная домашняя страница, но я хотел иметь частичные представления, которые для навигации, footer ect. Я использую 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');


        }
    };

В моем каталоге представлений есть 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>

Проблема Когда я проверяю это, я сталкиваюсь с ошибкой, частичной не определена. Я пытался использовать ejs, но не имел успеха.

4b9b3361

Ответ 1

Как сказал @Pickels, Partial был удален в 3.x. Однако в последней версии EJS предусмотрен механизм включения "частичных", называемых "include":

https://github.com/visionmedia/ejs#includes

Включены относительно шаблона с инструкцией include, например, если у вас есть "./views/users.ejs" и "./views/user/show.ejs", вы должны использовать <% include user/show % > . Включенный файл буквально включены в шаблон, после компиляции не выполняется IO, поэтому для этих включенных шаблонов доступны локальные переменные.

Следующее будет работать как замена вашей старой функции partial(). Вам нужно будет сделать настройки в другом месте, чтобы поддерживать Express 3.x полностью, но по большей части это, похоже, работает хорошо (лучше на самом деле - меньше кода и более совершенный).

<% include nav.ejs %> <!-- replaces your old <%- partial('nav') %> -->

Ответ 2

Частичный был удален в 3.x. Теперь до шаблона двигателя, чтобы обеспечить частичное.