async function main() { // Imports et constantes. const fs = require('fs').promises; const express = require('express'); const bodyParser = require('body-parser') const ip = '0.0.0.0'; const port = 8000; const app = express(); let id = 1; // Permet de récupérer les données venant du client. app.use(bodyParser.urlencoded({ extended: true })); // Page d'accueil. app.get('/', function(req, res) { // On envoie le contenu du fichier index.html. return res.sendFile(__dirname + '/html/index.html'); }); // Envoi du fichier main.js app.get('/main.js', function(req, res) { return res.sendFile(__dirname + '/js/main.js'); }); // Route de récupération des données. app.post('/data', async function(req, res) { // Les données sont dans l'objet req.body. console.log(req.body); // Ouverture du fichier en mode append. let file = await fs.open(__dirname + '/data/users.csv', 'a'); // Ajout d'une ligne. file.write(id++ + ',' + req.body.username + '\n'); // Envoi de la réponse pour terminer la requête. res.send('Ok'); }); // Création du dossier où les données seront stockées. try { await fs.mkdir(__dirname + '/data'); } catch (err) { // Si une erreur existe autre que "le dossier existe déjà", on stoppe le serveur. if (err !== null && (err.errno !== -17 || err.code !== 'EEXIST')) { throw err; } } // On démarre le serveur, puis on peut y accéder dans le navigateur en allant sur http://localhost:8000 app.listen(port, ip, function() { console.log('Started listening on ' + port); }); } main();