E JS загрузка файлов e js в layout.ejs - PullRequest
0 голосов
/ 01 марта 2020

Я получил файл layout.e js по умолчанию, в котором я компилирую заголовок, footer et c. расположение. js. Теперь я хочу вывести содержимое страницы, хранящееся в 3 разных файлах (1. домашняя страница, 2. исполнители, 3. контактная форма). Когда вызывается страница / домашняя страница, файл homepage.e js должен быть прочитан и отображен (для других, см. Выше). Как я могу проверить, какой URL запрашивается или есть ли другой способ сделать это

layout.e js

<%- include('../partials/default/head') %>

<body>
    <!-- Navigation Top -->
    <%- include('../partials/default/navigation') %>

    <!-- Page Content -->

    <!-- Footer -->
    <%- include('../partials/default/footer') %>
    <script src="/vendor/jquery/jquery.min.js"></script>
    <script src="/vendor/bootstrap/js/bootstrap.min.js"></script>
</body>

</html>

router

const
    express = require('express'),
    defaultController = require('../controllers/defaultController');

const router = express.Router();    // create different routes

// Middleware to all routes in default
router.all('/*', (req, res, next) => {

    req.app.locals.layout = 'default';
    next();
})


// index routes
router.route('/')
    .get(defaultController.index)

router.route('/artists')
    .get(defaultController.artists)

router.route('/contact')
    .get(defaultController.contact)

module.exports = router;

controller

module.exports = {
    index: (req, res) => {
        res.render('default/index'); 
    },

    artists: (req,res) => {
        res.render('default/artists');
    },

    contact: (req,res) => {
        res.render('default/contact');
    },

в моем приложении. js Я сделал:

app.use('/',require('./routes/defaultRoutes'));
app.get('/', (req, res) => {
    res.render('layouts/default');
})
app.use('/',require('./routes/adminRoutes'));

app.get('/admin', (req, res) => {
    res.render('layouts/admin');
})

для реализации маршрутов. Но теперь указатель (домашняя страница) показывает только навигацию и нижний колонтитул и / исполнители и / контактируют только их содержание, а не частичные enter image description here

1 Ответ

0 голосов
/ 05 марта 2020

В вашем файле layout.e js добавьте <%- body %> там, где вы хотите, чтобы отображалось содержимое другой страницы, я предполагаю, что вы захотите, чтобы оно было прямо под <!-- Page Content -->

...