server.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. var express = require('express');
  2. var bodyParser = require('body-parser');
  3. var slug = require('slug');
  4. var _ = require('lodash');
  5. var fs = require('fs');
  6. var app = express();
  7. var examplesJSON = __dirname + '/exemples/liste.json';
  8. var examples = require(examplesJSON);
  9. app.use(express.static(__dirname));
  10. app.use(bodyParser.json());
  11. function addExample(slug, title) {
  12. examples.push({ slug: slug, title: title });
  13. fs.writeFileSync(examplesJSON, JSON.stringify(examples));
  14. }
  15. app.post('/examples', function(req, res) {
  16. var title = req.body.title;
  17. if(! req.body.title) {
  18. res.status(400).send('Le titre ne peut pas être vide !');
  19. }
  20. var existingTitle = _.find(examples, { title: title });
  21. if(existingTitle) {
  22. res.status(400).send("L'exemple '" + title + "' existe déjà !");
  23. }
  24. var exampleSlug = slug(req.body.title.toLowerCase());
  25. var targetDir = __dirname + '/exemples/' + exampleSlug;
  26. fs.mkdirSync(targetDir);
  27. fs.writeFileSync(targetDir + '/contenu.html', '');
  28. fs.writeFileSync(targetDir + '/script.js', '');
  29. addExample(exampleSlug, title);
  30. res.json({ slug: exampleSlug, title: title });
  31. });
  32. app.listen(3000);