Вы должны действительно показать, какой код у вас есть, потому что ваши настройки будут отличаться от моих, поэтому, если я дам вам свой код, это будет сложно, потому что я не использую значения по умолчанию.
У вас 2 проблемы.
Вы хотите использовать разные файлы маршрутов
У вас проблемы с файлами макетов
Решение для 1: используйте app.use
файл index.js
app.use('/agency', require(`agency`)) // make route use the route file in root/agency.js
файл agency.js
app.get('/', (req, res) => { // this is using your /agency and its only / because its using /agency. If you want /agency/test then you use /test
res.render(`viewHandlebarsFile`) // calling your handlebar view file
})
руль основного файла макета (по умолчанию):Убедитесь, что вы поместили это в тег body, он будет вызывать ваш файл просмотра руля
{{{body}}}
Как это работает: ваш файл index.js указывает маршрут / agencyв ваш маршрутный файл agency.js
Ваш agency.js получает файл вида руля.
Ваш файл вида руля - только тело. В вашем файле макета по умолчанию будет использоваться тег {{{body}}}, и это тело будет вызывать ваш файл просмотра руля.
Как я уже сказал, не зная, как настроить значения по умолчанию, трудно помочь вам без вашегокоды. Я дал вам код ключа для использования, который должен работать в соответствии с вашими настройками. Удачи вам.
Ниже у меня есть схема скелета для вас, если у вас возникли проблемы. Файл
app.js находится в вашей корневой папке
const express = require('express')
const app = express()
const path = require('path')
const exphbs = require('express-handlebars');
app.set('views', path.join(__dirname, 'views'))
app.engine('hbs', exphbs({defaultLayout: 'main', extname: '.hbs'})) // change extension to .hbs
app.set('view engine', 'hbs')
app.set('port', (process.env.PORT || 3000))
app.get('/', (req, res) => {
res.render('home', {
content: 'This is some content', // for dynamic content, in view use {{content}} to call this data
published: false
})
})
app.use('/agency', require(`./agency`))
app.listen(app.get('port'), () => {
console.log('Server started on port' + app.get('port'))
})
*Файл 1039 * agency.js находится в корневой папке
const express = require('express')
const exphbs = require('express-handlebars')
const app = module.exports = express()
app.get('/', (req, res) => { // this is using your /agency and its only / because its using /agency. If you want /agency/test then you use /test
res.render(`view2`) // calling your handlebar view file
})
В папке с вашими представлениями, расположенной в корневом каталоге
home.hbs
<h1>Welcome Home Page</h1>
view2.hbs, расположенной впапка с вашими представлениями
<h1>View 2 page</h1>
Внутри папки раскладок, которая находится внутри вашей папки с представлениями
main.hbs
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Handlebars Express</title>
</head>
<body>
{{{body}}}
</body>
</html>