|
295
|
1 |
// Simple persist middle ware |
|
|
2 |
var path = require('path'), |
|
|
3 |
fs = require('fs'); |
|
|
4 |
|
|
|
5 |
var jsonFile = path.join(__dirname,"example-cinema.json"); |
|
|
6 |
var resetFile = path.join(__dirname,"example-cinema-src.json"); |
|
|
7 |
|
|
|
8 |
exports.middleware = function(req, res, next) { |
|
|
9 |
'use strict'; |
|
|
10 |
|
|
|
11 |
if (req.url !== '/simple-persist') { |
|
|
12 |
return next(); |
|
|
13 |
} |
|
|
14 |
|
|
|
15 |
res.setHeader('Content-Type', 'application/json; charset=utf-8'); |
|
|
16 |
res.statusCode = 200; |
|
|
17 |
|
|
|
18 |
if(req.method === "PUT") { |
|
|
19 |
req.pipe(fs.createWriteStream(jsonFile)); |
|
|
20 |
res.end(JSON.stringify({result: "OK"})); |
|
|
21 |
} |
|
|
22 |
else { |
|
|
23 |
var params = require('url').parse(req.url), |
|
|
24 |
readStream; |
|
|
25 |
if('reset' in params && params.reset) { |
|
|
26 |
readStream = fs.createReadStream(resetFile); |
|
|
27 |
readStream.pipe(fs.createWriteStream(jsonFile)); |
|
|
28 |
} |
|
|
29 |
else { |
|
|
30 |
readStream = fs.createReadStream(jsonFile); |
|
|
31 |
readStream.on('error',function() { |
|
|
32 |
var srcFile = fs.createReadStream(resetFile); |
|
|
33 |
srcFile.pipe(fs.createWriteStream(jsonFile)); |
|
|
34 |
srcFile.pipe(res); |
|
|
35 |
}); |
|
|
36 |
} |
|
|
37 |
readStream.pipe(res); |
|
|
38 |
} |
|
|
39 |
}; |