diff -r 61c45e41a515 -r eaaa1efce396 client/data/simple-persist.js --- a/client/data/simple-persist.js Tue Oct 04 16:40:25 2016 +0200 +++ b/client/data/simple-persist.js Thu Jan 05 16:26:07 2017 +0100 @@ -2,37 +2,59 @@ var path = require('path'), fs = require('fs'); -var jsonFile = path.join(__dirname,"example-cinema.json"); -var resetFile = path.join(__dirname,"example-cinema-src.json"); +var jsonFilesBase = path.join(__dirname,"json/example-cinema"); +var resetFilesBase = path.join(__dirname,"example-cinema-src"); + +function getJsonFile(key) { + return jsonFilesBase + (key?("-" + key):"") + ".json"; +} + +function getResetFile(key) { + return resetFilesBase + (key?("-" + key):"") + ".json"; +} + +function createWriteStreamJson(file) { + var dir = path.join(__dirname, 'json'); + if (!fs.existsSync(dir)){ + fs.mkdirSync(dir); + } + return fs.createWriteStream(file); +} exports.middleware = function(req, res, next) { 'use strict'; + + var params = require('url').parse(req.url, true); - if (req.url !== '/simple-persist') { + if (params.pathname !== '/simple-persist') { return next(); } + var key = params.query.key; + + var jsonFile = getJsonFile(key); + var resetFile = getResetFile(key); + res.setHeader('Content-Type', 'application/json; charset=utf-8'); res.statusCode = 200; if(req.method === "PUT" || req.method === "POST") { - req.pipe(fs.createWriteStream(jsonFile)); + req.pipe(createWriteStreamJson(jsonFile)); setTimeout(function () { res.end(JSON.stringify({result: "OK"})); }, 3000); } else { - var params = require('url').parse(req.url), - readStream; - if('reset' in params && params.reset) { + var readStream; + if('reset' in params.query && params.query.reset) { readStream = fs.createReadStream(resetFile); - readStream.pipe(fs.createWriteStream(jsonFile)); + readStream.pipe(createWriteStreamJson(jsonFile)); } else { readStream = fs.createReadStream(jsonFile); readStream.on('error',function() { var srcFile = fs.createReadStream(resetFile); - srcFile.pipe(fs.createWriteStream(jsonFile)); + srcFile.pipe(createWriteStreamJson(jsonFile)); srcFile.pipe(res); }); }