working database save

This commit is contained in:
Gleb Bahmutov
2013-12-21 15:31:34 -05:00
parent 7017b829a6
commit 7776dd6b45
4 changed files with 36 additions and 18 deletions

View File

@ -3,6 +3,8 @@ var program = require('commander'),
request = require('superagent'), request = require('superagent'),
server = require('../server'), server = require('../server'),
logger = require('../utils/logger'), logger = require('../utils/logger'),
moment = require('moment'),
fs = require('fs'),
options = {}; options = {};
function loadFile(file, cb) { function loadFile(file, cb) {
@ -13,15 +15,6 @@ function loadFile(file, cb) {
if (/\.js$/.test(file)) db = require(path).run(); if (/\.js$/.test(file)) db = require(path).run();
cb(db); cb(db);
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (userInput) {
console.log(userInput);
if (userInput.trim().toLowerCase() == 's') {
console.log('saving db');
}
});
} }
function loadURL(url, cb) { function loadURL(url, cb) {
@ -38,7 +31,25 @@ function loadURL(url, cb) {
} }
function onDatabaseLoaded(db) { function onDatabaseLoaded(db) {
server.run(db, options); var app = server.run(db, options);
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (userInput) {
console.log(userInput);
if (userInput.trim().toLowerCase() == 's') {
var liveDB = app.db();
var now = moment().format('YYYY-MM-DD:HH-MM-SS')
var filename = 'json-server.' + now + '.json';
console.assert(liveDB, 'expected live db object');
fs.writeFileSync(filename,
JSON.stringify(liveDB, null, 2),
'utf-8');
console.log('saved db to', filename);
}
});
return app;
} }
program program

View File

@ -14,7 +14,8 @@
"logan": "~0.0.2", "logan": "~0.0.2",
"superagent": "~0.15.7", "superagent": "~0.15.7",
"underscore": "~1.5.2", "underscore": "~1.5.2",
"underscore.inflections": "~0.2.1" "underscore.inflections": "~0.2.1",
"moment": "~2.4.0"
}, },
"devDependencies": { "devDependencies": {
"supertest": "~0.8.1", "supertest": "~0.8.1",

View File

@ -12,6 +12,10 @@ exports.database = function(req, res) {
res.jsonp(db) res.jsonp(db)
} }
exports.db = function() {
return db;
}
// GET /:resource?attr=&attr= // GET /:resource?attr=&attr=
exports.list = function(req, res) { exports.list = function(req, res) {
var collection = db[req.params.resource], var collection = db[req.params.resource],

View File

@ -63,6 +63,7 @@ function createApp(db, options) {
// Set database // Set database
routes.setDatabase(db); routes.setDatabase(db);
app.db = routes.db;
// And done! Ready to serve JSON! // And done! Ready to serve JSON!
return app; return app;
@ -88,6 +89,7 @@ function run(db, options) {
logger.success('Express server listening on port ' + options.port); logger.success('Express server listening on port ' + options.port);
logger.success('Congrats! Open http://localhost:' + options.port); logger.success('Congrats! Open http://localhost:' + options.port);
}); });
return app;
} }
exports.createApp = createApp; exports.createApp = createApp;