Heb wat aanpassingen gemaakt aan de manier van naamgeving in het pws
This commit is contained in:
parent
8c2b626aef
commit
75d468a672
1
app.js
1
app.js
|
@ -19,7 +19,6 @@ app.use('/other', express.static(__dirname + '/resources/other'));
|
||||||
|
|
||||||
app.get('/', hoewerkt);
|
app.get('/', hoewerkt);
|
||||||
app.get('/:article', hoewerkt);
|
app.get('/:article', hoewerkt);
|
||||||
app.get('/:article/:difficulty', hoewerkt);
|
|
||||||
|
|
||||||
function start(port, host) {
|
function start(port, host) {
|
||||||
app.listen(port, host);
|
app.listen(port, host);
|
||||||
|
|
|
@ -10,4 +10,4 @@ Je hebt tot nu toe gelezen wat er allemaal gebeurd als je rooster wordt opgevraa
|
||||||
Hoe een templaat werkt is eigenlijk hetzelfde als bij wiskundige formules. Je hebt gewoon een soort standaard manier van werken met een variabele. We nemen als voorbeeld de formule `y = x + 2`. Iedereen weet wat er gebeurd met `y` als je x veranderd. `y` is dan gewoon `x` plus twee erbij. Bij templates bij rooster.io werkt het vrijwel hetzelfde, maar in plaats van een wiskundige formule, is het een hele lange formule die niet alleen cijfers kan verwerken maar ook woorden en zinnen. Ik kan bijvoorbeeld iemand groeten die zijn rooster bezoekt door het variabele van zijn naam te gebruiken in zo'n templaat. Het templaat is dan bijvoorbeeld `Hallo {naam}, hoe gaat het met jou?`. Ik voer dan voor het variabele `naam` dan de naam van de rooster opvrager. Op die manier krijg ik dus bijvoorbeeld `Hallo Bert, hoe gaat het met jou?` als het variabele naam gelijk staat aan `Bert`. Deze templaten zijn echter geschreven in een taal die dit soort vergelijkingen makkelijk leesbaar maakt voor de programeur. Maar in plaats van dat we alleen woorden en zinnen in elkaar gaan zetten met de variabelen, gaan we dat ook doen met webpagina's. Laten we eens bekijken hoe zo'n templaat er uit ziet.
|
Hoe een templaat werkt is eigenlijk hetzelfde als bij wiskundige formules. Je hebt gewoon een soort standaard manier van werken met een variabele. We nemen als voorbeeld de formule `y = x + 2`. Iedereen weet wat er gebeurd met `y` als je x veranderd. `y` is dan gewoon `x` plus twee erbij. Bij templates bij rooster.io werkt het vrijwel hetzelfde, maar in plaats van een wiskundige formule, is het een hele lange formule die niet alleen cijfers kan verwerken maar ook woorden en zinnen. Ik kan bijvoorbeeld iemand groeten die zijn rooster bezoekt door het variabele van zijn naam te gebruiken in zo'n templaat. Het templaat is dan bijvoorbeeld `Hallo {naam}, hoe gaat het met jou?`. Ik voer dan voor het variabele `naam` dan de naam van de rooster opvrager. Op die manier krijg ik dus bijvoorbeeld `Hallo Bert, hoe gaat het met jou?` als het variabele naam gelijk staat aan `Bert`. Deze templaten zijn echter geschreven in een taal die dit soort vergelijkingen makkelijk leesbaar maakt voor de programeur. Maar in plaats van dat we alleen woorden en zinnen in elkaar gaan zetten met de variabelen, gaan we dat ook doen met webpagina's. Laten we eens bekijken hoe zo'n templaat er uit ziet.
|
||||||
|
|
||||||
---
|
---
|
||||||
[Volgende >>](#)
|
[Volgende >>](/database)
|
||||||
|
|
|
@ -18,4 +18,4 @@ Hij bekijkt het bestand en richt zich gelijk op de laatste waarde van het bestan
|
||||||
#### Roosters als koekjesvorm
|
#### Roosters als koekjesvorm
|
||||||
Rooster.io gaat ook verder. Hij gaat verder door het bestand uit de database te verwerken. Hij doet hetzelfde als de collega in het verhaal hierboven. Hij knipt en plakt het rooster in een nieuw jasje. Hij gaat naar de link die is gegeven in het bestand en download het daar gevonden rooster als tekstbestand. Vervolgens gaat hij door dit tekstbestand heen om het rooster uit te vissen. Hij leest dit bestand volgens een bepaald algoritme. Dit algoritme is voorgeprogrameerd om bepaalde informatie er uit te halen. De informatie die verkregen word uit de webpagina is bijvoorbeeld de rooster informatie. Dit zijn dingen zoals welk uren je welke lessen hebt met welke docenten en in welk lokaal. Het algoritme verkijgt ook informatie zoals het naam van het rooster. Hij vertaalt dan deze door mensen te lezen informatie, in een soortgelijk [database bestand](http://werkmanrooster.nl/api/schedule?name=16374) zodat een computer het kan lezen. Het verschil in database bestanden tussen een rooster en die van een leerling, is het verschil van inhoud. Een database bestand van een leerling houdt informatie vast over de leerling, terwijl een database bestand van een rooster informatie vasthoud over een specifiek rooster. Dan stopt het systeem deze informatie in een "template". Een template is eigenlijk een soort koekjesvorm. Het zorgt ervoor dat de informatie die er in word gestopt er in een bepaalde vorm er uit komt. In ons geval is dat een webpagina.
|
Rooster.io gaat ook verder. Hij gaat verder door het bestand uit de database te verwerken. Hij doet hetzelfde als de collega in het verhaal hierboven. Hij knipt en plakt het rooster in een nieuw jasje. Hij gaat naar de link die is gegeven in het bestand en download het daar gevonden rooster als tekstbestand. Vervolgens gaat hij door dit tekstbestand heen om het rooster uit te vissen. Hij leest dit bestand volgens een bepaald algoritme. Dit algoritme is voorgeprogrameerd om bepaalde informatie er uit te halen. De informatie die verkregen word uit de webpagina is bijvoorbeeld de rooster informatie. Dit zijn dingen zoals welk uren je welke lessen hebt met welke docenten en in welk lokaal. Het algoritme verkijgt ook informatie zoals het naam van het rooster. Hij vertaalt dan deze door mensen te lezen informatie, in een soortgelijk [database bestand](http://werkmanrooster.nl/api/schedule?name=16374) zodat een computer het kan lezen. Het verschil in database bestanden tussen een rooster en die van een leerling, is het verschil van inhoud. Een database bestand van een leerling houdt informatie vast over de leerling, terwijl een database bestand van een rooster informatie vasthoud over een specifiek rooster. Dan stopt het systeem deze informatie in een "template". Een template is eigenlijk een soort koekjesvorm. Het zorgt ervoor dat de informatie die er in word gestopt er in een bepaalde vorm er uit komt. In ons geval is dat een webpagina.
|
||||||
|
|
||||||
[Volgende >>](#)
|
[Volgende >>](/templates)
|
12
hoewerkt.js
12
hoewerkt.js
|
@ -7,7 +7,10 @@ var articles = [
|
||||||
'inhetkort:In het kort',
|
'inhetkort:In het kort',
|
||||||
'intypen:Je gaat naar de website',
|
'intypen:Je gaat naar de website',
|
||||||
'opzoek:Op zoek naar je naam',
|
'opzoek:Op zoek naar je naam',
|
||||||
'verkrijgen:Verkrijgen en verwerken'
|
'verkrijgen:Verkrijgen en verwerken',
|
||||||
|
'dataapps:Data gedreven applicaties',
|
||||||
|
'templates:Templaten',
|
||||||
|
'database:De database'
|
||||||
]
|
]
|
||||||
|
|
||||||
module.exports = function (req, res, next) {
|
module.exports = function (req, res, next) {
|
||||||
|
@ -16,10 +19,9 @@ module.exports = function (req, res, next) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var sub = req.url.split('/')[1];
|
var sub = req.url.split('/')[1];
|
||||||
var othersub = req.url.split('/')[2] || 'makkelijk';
|
|
||||||
for (article of articles) {
|
for (article of articles) {
|
||||||
if (sub == article.split(':')[0]) {
|
if (sub == article.split(':')[0]) {
|
||||||
res.render('article', render(sub, othersub, res))
|
res.render('article', render(sub, res))
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,12 +29,12 @@ module.exports = function (req, res, next) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function render(file, difficulty, res) {
|
function render(file, res) {
|
||||||
if (file == 'index') var content = fs.readFileSync(__dirname + '/articles/index.md').toString();
|
if (file == 'index') var content = fs.readFileSync(__dirname + '/articles/index.md').toString();
|
||||||
else {
|
else {
|
||||||
|
|
||||||
var files = fs.readdirSync(__dirname + '/articles/' + file.toLowerCase()).join('\n');
|
var files = fs.readdirSync(__dirname + '/articles/' + file.toLowerCase()).join('\n');
|
||||||
var selected = files.match(new RegExp(difficulty + '.*'));
|
var selected = files.match(new RegExp('.*\.md'));
|
||||||
if (!selected) res.render('404');
|
if (!selected) res.render('404');
|
||||||
var content = fs.readFileSync(__dirname + '/articles/' + file + '/' + selected[0]).toString();
|
var content = fs.readFileSync(__dirname + '/articles/' + file + '/' + selected[0]).toString();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue