Просмотр исходного кода

make files creation/update async

Benoît Hubert 8 лет назад
Родитель
Сommit
b4b35bd424
3 измененных файлов с 14 добавлено и 6 удалено
  1. 0 0
      exemples/.gitkeep
  2. 1 0
      package.json
  3. 13 6
      sandboxApp.js

+ 0 - 0
exemples/.gitkeep


+ 1 - 0
package.json

@@ -1,6 +1,7 @@
 {
   "name": "ipi-inline-editor",
   "dependencies": {
+    "bluebird": "^3.5.1",
     "body-parser": "^1.18.2",
     "cors": "^2.8.4",
     "express": "^4.16.2",

+ 13 - 6
sandboxApp.js

@@ -4,9 +4,11 @@ var slug         = require('slug');
 var beautify     = require("json-beautify");
 var _            = require('lodash');
 var fs           = require('fs');
+var Promise      = require('bluebird');
 var app          = express();
 var examplesJSON = __dirname + '/exemples/liste.json';
 var examples     = require(examplesJSON);
+Promise.promisifyAll(fs);
 
 app.use(express.static(__dirname));
 app.use(bodyParser.json());
@@ -14,7 +16,7 @@ app.use(bodyParser.urlencoded({ extended: true }));
 
 function addExample(slug, title) {
   examples.push({ slug: slug, title: title });
-  fs.writeFileSync(examplesJSON, beautify(examples, null, 2, 100));
+  return fs.writeFileAsync(examplesJSON, beautify(examples, null, 2, 100));
 }
 
 app.post('/examples', function(req, res) {
@@ -29,11 +31,16 @@ app.post('/examples', function(req, res) {
   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 });
+  fs.mkdirAsync(targetDir)
+  .then(() => Promise.map(
+    ['contenu.html', 'script.js'], f => fs.writeFileAsync(targetDir + '/' + f, '')
+  ))
+  .then(files => addExample(exampleSlug, title))
+  .then(() => res.json({ slug: exampleSlug, title: title }));
+});
+
+app.get('/examples/:slug', function(req, res) {
+
 });
 
 app.put('/examples/:slug', function(req, res) {