author: krm created: 2022-05-05 status: alpha
Visar en lista med information från databasen. Du behöver en databas med en tabel som kan ta emot data. Du måste också vara ansluten mot databasen. Titta också skärskilt igenom guiden om "mustasch.js" eftersom vi kommer utfå från att du gjort något likande.
Språket som du använder för att ställa frågor till din databas. Titta i vårt dokument om du behöver repetera.
Vi kompierar den ifrån en mall.
cp ~/dev/mimer-template/File/web.html template/msg.html
Vi vill ge iväg en html sida med information om vad som finns i databasen.
app.get("/msg/", async function (req: Request, res: Response) {
Du kan hämta data ifrån din tabell i databsen. await behövs eftersom du måste vänta på svaret.
let question = "SELECT * FROM msg;";
const result = await db.execute(question);
Vi behöver ha informationen från objectet vi fick från databasen.
const msg_list = result.values().next().value;
Oklart varför vi måste göra ett så konstigt API anrop, men det fungerar. Testa gärna med console.log för att se vad som händer.
Lägg till informationen till ett object som repsenterar viktigt data.
const data = {
msgLista: msg_list
};
Vi behöver ha mallen som text.
const template = await fs.readFile("template/msg.html", "utf-8");
Detta kan du göra en gång i början av programmet istället.
Rendera texten med dataobjektet vi har gjort.
let text = Mustache.render(template, data);
Eftersom mallen ännu inte innehåller någon regel för att hantera datat som kommer in så kommer inget intressant att visas.
Vi avslutar nu vårt anrop genom att skicka resultat till klienten som efterfrågat det.
res.send(text);
}
Vi behöver nu en lista i vår mall. Lägg till den kod i msg.html för att få en lista.
<ul>
// Code
</ul>
Använd mallen för att få data. Läs på om hur Mustach mallar fungerar om du undrar om syntaxen.
{{#msgLista}}
// Code
{{/msgLista}}
I koden ovan lägger till kod som hanterar varje rad i listan.
<li> <span> {{date}} </span> - {{msg}} </li>
Starta om server och gå in på sidan: http://localhost:3000