79 lines
2.3 KiB
JavaScript
79 lines
2.3 KiB
JavaScript
const express = require("express")
|
|
const app = express()
|
|
const PORT = 3000
|
|
const path = require('path')
|
|
|
|
const { create } = require('express-handlebars');
|
|
|
|
const context = {
|
|
subject: "09: użycie helperów",
|
|
text: "Lorem ipsum dolor sit amet"
|
|
}
|
|
|
|
const hbs = create({
|
|
defaultLayout: 'main.hbs', // Domyślny layout: views/layouts/main.hbs
|
|
extname: '.hbs', // rozszerzenie plików szablonów
|
|
helpers: {
|
|
short_title: function (title) {
|
|
return title.substring(0, 10) + "...";
|
|
},
|
|
capitals: function (title) {
|
|
let words = title.split(' ')
|
|
let output = ''
|
|
words.forEach(word => output += word[0].toUpperCase() + word.substring(1, word.length) + ' ')
|
|
output = output.substring(0, output.length - 1)
|
|
return output
|
|
},
|
|
dashes: function (title) {
|
|
let str = title.replaceAll(" ", "")
|
|
let output = ''
|
|
for (let i = 0; i < str.length; i++) {
|
|
output += str[i] + '-'
|
|
}
|
|
output = output.substring(0, output.length - 1)
|
|
return output
|
|
}
|
|
}
|
|
});
|
|
|
|
app.engine('.hbs', hbs.engine); // określenie silnika szablonów
|
|
app.set('view engine', '.hbs');
|
|
app.set('views', path.join(__dirname, 'views')); // ustalamy katalog views
|
|
|
|
app.get("/", function (req, res) {
|
|
res.render('index09.hbs', context)
|
|
})
|
|
|
|
app.get("/handle04", function (req, res) {
|
|
let data = {
|
|
subject: context.subject,
|
|
books: []
|
|
};
|
|
|
|
if (req.query.title != 'on' && req.query.author != 'on' && req.query.lang != 'on') {
|
|
data.books.push({ value: "Musisz wybrać co najmniej jedno kryterium!" })
|
|
} else {
|
|
context.books.forEach(book => {
|
|
let attributes = []
|
|
if (req.query.title == 'on') {
|
|
attributes.push(book.title)
|
|
}
|
|
if (req.query.author == 'on') {
|
|
attributes.push(book.author)
|
|
}
|
|
if (req.query.lang == 'on') {
|
|
attributes.push(book.lang)
|
|
}
|
|
data.books.push({ value: attributes.join(', ') })
|
|
})
|
|
}
|
|
|
|
res.render('index041.hbs', data);
|
|
})
|
|
|
|
app.use(express.static("static"))
|
|
|
|
app.listen(PORT, function () {
|
|
console.log("start serwera na porcie " + PORT)
|
|
})
|