Dyrektor szkoły zauważył 9-letnią dziewczynkę codziennie zabierającą resztki z kafeterii i postanowił ją obserwować

polregion.pl 5 dni temu

Dyrektor szkoły, pan Nowak, od piętnastu lat pracował jako dyrektor i nauczył się jednej rzeczy: dzieci często noszą ciężary, których dorośli nie widzą.

Niektóre maluchy wyrażały swoje problemy otwarcie, inne chowały je za grzecznymi uśmiechami i cichym posłuszeństwem.

Małą Zosię zaliczał zdecydowanie do tych cichych.

Miała dziewięć lat, była drobna jak na swój wiek, a jej ciemne warkoczyki zawsze związane były niebieskimi wstążkami. Nigdy nie sprawiała kłopotów, nigdy nie odzywała się niepytana. adekwatnie to wręcz wtapiała się w tło.

Dlatego też pan Nowak zauważył to, co robiła, dopiero po dłużs# UFS00 – Använda templating

**Malcolm Kindness**

### Beskrivning

Att använda templating innebär att använda en templating-motor (eller ett template-system) för att generera dynamisk HTML på ett effektivt sätt. Templating hjälper till att separera kod och innehåll, vilket gör koden mer underhållbar och lättare att läsa. Templating erbjuder även möjligheten att skapa delbara komponenter som kan återanvändas på flera sidor. Det finns flera populära templating-motorer för JavaScript, såsom EJS, Pug och Handlebars. Vanliga funktioner inkluderar variabelersättning, loopar, villkor och inkludering av andra mallar. Till exempel kan man använda en loop för att generera en lista av objekt från en databashämtning, eller använda en villkorssats för att visa olika innehåll baserat på användarens inloggningsstatus.

#### För-delar

– **Separation av concerns (SoC):** Templating hjälper till att separera affärslogik från presentation, vilket gör koden mer organiserad och underhållbar.
– **Återanvändbarhet:** Mallar kan återanvändas på olika sidor, vilket minskar kodduplicering.
– **Underhållbarhet:** Ändringar i layout eller design kan göras på ett ställe istället för i varje enskild fil.
– **Säkerhet:** Många templating-motorer har inbyggda funktioner för att förhindra XSS-attacker (Cross-Site Scripting) genom att automatiskt rensa utdata.
– **Prestanda:** Vissa templating-motorer kompilerar mallar till JavaScript-funktioner, vilket kan förbättra prestandan.

#### Nack-delar

– **Inlärningskurva:** Varje templating-motor har sin egen syntax, vilket kan kräva tid att lära sig.
– **Begränsningar:** Vissa templating-motorer kan vara begränsade i funktionalitet jämfört med att skriva ren JavaScript.
– **Överhead:** Att använda en templating-motor kan lägga till extra komplexitet och overhead, speciellt för enkla projekt.
– **Debugging:** Fel i mallar kan ibland vara svårare att felsöka jämfört med vanlig HTML/JavaScript.
– **Prestanda:** I vissa fall kan templating vara långsammare än att manuellt skapa HTML, även om detta oftast är försumbart.

### Problem

I denna övning ska vi använda templating för att skapa en dynamisk webbapplikation som visar en lista över användare. Vi kommer att använda EJS (Embedded JavaScript) som templating-motor med Express.js. Övningen inkluderar att skapa en grundläggande Express-app, ställa in EJS som vymotor och rendera en lista över användare på en webbsida.

### Lösning

1. **Installera nödvändiga paket:**
Först skapar vi en ny mapp för vårt projekt och initialiserar ett nytt Node.js-projekt med `npm init -y`. Sedan installerar vi Express och EJS med följande kommandon:

„`bash
npm install express ejs
„`

2. **Skapa en grundläggande Express-app:**
Vi skapar en fil vid namn `app.js` och konfigurerar en grundläggande Express-app där vi ställer in EJS som templating-motor.

„`javascript
const express = require(’express’);
const app = express();

// Ställ in EJS som templating-motor
app.set(’view engine’, 'ejs’);

// Middleware för att hantera statiska filer
app.use(express.static(’public’));

// Exempeldata – en lista med användare
const users = [
{ id: 1, name: 'Malcolm Kindness’, email: '[email protected]’ },
{ id: 2, name: 'Oskar Bondesson’, email: '[email protected]’ },
{ id: 3, name: 'Alexander Eriksson’, email: '[email protected]’ },
];

// Route för startsidan
app.get(’/’, (req, res) => {
res.render(’index2′, { users: users });
});

// Starta servern
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Servern körs på http://localhost:${PORT}`);
});
„`

3. **Skapa en EJS-mall:**
Vi skapar en mapp vid namn `views` och inuti den en fil vid namn `index.ejs`. Denna fil kommer att innehålla HTML med EJS-syntax för att rendera listan över användare.

„`html





Användare


Användarlista

    { %>



„`

4. **Kör applikationen:**
Vi startar vår server genom att köra `node app.js` i terminalen och öppnar sedan webbläsaren på `http://localhost:3000` för att se resultatet. Websidan kommer att visa en lista över användare som hämtas från vår exempeldata.

### Diskussion

I denna lösning har vi använt EJS för att skapa en dynamisk webbsida som visar en lista över användare. EJS tillåter oss att bädda in JavaScript direkt i HTML, vilket gör det enkelt att generera dynamiskt innehåll. Vi använder `` för att köra JavaScript-kod (som loopar) och `` för att mata ut värden (som användarnamn och e-post). För-delarna med detta tillvägagångssätt inkluderar enkelhet och läsbarhet, samt möjligheten att separera data från presentation. Nack-delar kan inkludera att EJS-syntax kan bli rörig om den överanvänds, och att prestandan kan lida om mallarna blir alltför komplexa. Ytterligare förbättringar kan inkludera att använda partiella vyer (partials) för återanvändbara komponenter, eller att använda en mer avancerad state management-lösning om applikationen växer i komplexitet.

### Slutsats

Att använda templating med EJS och Express.js är ett kraftfullDzięki pomocy pana Nowaka, Daniel odnalazł drogę do normalności, a Zosia z mamą wiedziały już, iż dobro zawsze wraca.

Idź do oryginalnego materiału