@embiid

Как использовать несколько express-layouts?

Как использовать несколько шаблонов для сайта?

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

const path           = require("path")
const express        = require("express")
const session        = require("express-session")
const bodyParser 	 = require("body-parser")
const expressLayouts = require("express-ejs-layouts")

const mysqlConnection = require("./models/database")

const authenticateController = require("./controllers/authenticate-controller")
const registerController	 = require("./controllers/register-controller")

const app = express()

app.set('views', __dirname + '/views/layouts');
app.set("view engine", "ejs")

app.use(express.static(path.join(__dirname, 'views')));

app.use(expressLayouts)
app.use(session({
	secret: 'secret',
	resave: true,
	saveUninitialized: true
}));
app.use(bodyParser.urlencoded({extended : true}));
app.use(bodyParser.json());

app.get('/', (request, response) => {
	response.render('../partials/login')
})

app.get('/registration', (request, response) => {
	response.render('../partials/registration')
})

app.get('/feed', (request, response) =>  {
	response.render('../partials/feed', { expressLayouts: 'main.ejs' })
})

app.post('/auth/register', registerController.register)
app.post('/auth/authenticate', authenticateController.authenticate)

app.listen(3000)


И я не могу понять, как серверу определить другой шаблон кроме layout?
5db42a40c0888534091374.png
  • Вопрос задан
  • 36 просмотров
Пригласить эксперта
Ответы на вопрос 1
IDONTSUDO
@IDONTSUDO
ЧСВ программистов идет в комплекте с первой IDE.
Как бы я это сделал. На примере авторизации.
Есть такие данные в базе.
email:""
password:""
role:""

role бывает двух типов. Админ или обычный пользователь.

Авторизуется админ. В ответ от бд, нам приходит его роль. И на основании этой роли, отдавал бы лайоут.

То есть примерно.

if(res.result.role  === "admin"){
 response.render('../partials/news/admin')
}else{
 response.render('../partials/news/user')
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы