#javascript #node.js #pug
Вопрос:
Я изучаю node js и использую механизм шаблонов pug для создания простой страницы входа/администратора для бронирования отелей.
Когда пользователь вошел в систему, страница индекса должна отличаться от страницы пользователя, не вошедшего в систему.
Должен ли я выполнить условие в моем шаблоне или условие в моем домашнем маршруте для отображения index_logged или index_not_logged?
В настоящее время занимаюсь
app.get('/', (req, res) => {
User.find({}, function(err, users) {
if(err) {
console.log(err);
} else {
res.render("index", {
title: "Willkommen",
users: users
});
}
});
});
и в моем указательном пальце.мопс
extends layout
block content
if user
h1 #{title}
ul.list-group
each user, i in users
li.list-group-item
a(href="/users/" user._id)= user.name
else
.jumbotron
h1 #{title}
a(href="/users/login").btn.btn-primary Anmelden
В данный момент я использую глобальную пользовательскую переменную.
Комментарии:
1. Значит, у него две страницы в одном шаблоне против двух страниц и каждая в отдельном шаблоне? Вы должны использовать по одному файлу на страницу и направлять их в свой контроллер маршрутов.
2. В настоящее время рендеринг index.pug из моего приложения.используйте(‘/’ и делайте в index.pug что-то вроде, если пользователь, визуализируйте это, иначе визуализируйте это. Однако я не уверен, что есть правильный способ сделать это. Отредактировал вопрос, чтобы сделать его проще.
Ответ №1:
Если ваша публика /
сильно отличается от вошедшей в /
систему , отобразите два отдельных представления мопса, например:
app.get('/', (req, res) => {
User.find({}, function(err, users) {
if (err) {
console.log(err);
res.render("public_index");
} else {
res.render("index", {
title: "Willkommen",
users: users
});
}
});
});
Но если две страницы очень похожи, но некоторые части отличаются, то визуализируйте одно и то же представление, но используйте if user
(теоретически вы можете разместить его в любом месте файла представления), чтобы отобразить соответствующий контент соответствующим образом, например, то, что у вас есть в index.pug в вашем вопросе. Логика вашего приложения должна быть:
app.get('/', (req, res) => {
User.find({}, function(err, users) {
let Users = undefined;
if (err) {
console.log(err);
} else {
Users = users
}
res.render("index", { title: "Wilkommen", users: Users });
});
});
Комментарии:
1. Спасибо, я разберусь с этим