var express = require('express'); var bodyParser = require('body-parser'); var slug = require('slug'); var _ = require('lodash'); var fs = require('fs'); var app = express(); var examplesJSON = __dirname + '/exemples/liste.json'; var examples = require(examplesJSON); app.use(express.static(__dirname)); app.use(bodyParser.json()); function addExample(slug, title) { examples.push({ slug: slug, title: title }); fs.writeFileSync(examplesJSON, JSON.stringify(examples)); } app.post('/examples', function(req, res) { var title = req.body.title; if(! req.body.title) { res.status(400).send('Le titre ne peut pas être vide !'); } var existingTitle = _.find(examples, { title: title }); if(existingTitle) { res.status(400).send("L'exemple '" + title + "' existe déjà !"); } var exampleSlug = slug(req.body.title.toLowerCase()); var targetDir = __dirname + '/exemples/' + exampleSlug; fs.mkdirSync(targetDir); fs.writeFileSync(targetDir + '/contenu.html'); fs.writeFileSync(targetDir + '/script.js'); addExample(exampleSlug, title); res.json({ slug: exampleSlug, title: title }); }); app.listen(3000);