Files
2026-10-08 10:51:15 +02:00

68 lines
1.9 KiB
JavaScript

const context = {
subject: "ćwiczenie 4 - dane z tablicy, select",
fields: [
{ name: "title" },
{ name: "author" },
{ name: "lang" }
],
books: [
{ title: "Lalka", author: "B Prus", lang: "PL" },
{ title: "Hamlet", author: "W Szekspir", lang: "ENG" },
{ title: "Pan Wołodyjowski", author: "H Sienkiewicz", lang: "PL" },
{ title: "Zamek", author: "F Kafka", lang: "CZ" }
]
}
const express = require("express")
const app = express()
const PORT = 3000
const path = require('path')
const { create } = require('express-handlebars');
const hbs = create({
defaultLayout: 'main.hbs', // Domyślny layout: views/layouts/main.hbs
extname: '.hbs' // rozszerzenie plików szablonów
});
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('index04b.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)
})