diff options
Diffstat (limited to 'index.js')
| -rw-r--r-- | index.js | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/index.js b/index.js new file mode 100644 index 0000000..9ddc5ba --- /dev/null +++ b/index.js @@ -0,0 +1,55 @@ +var fs = require('fs') +var express = require('express') +var http = require('http') +var path = require('path') +var bodyParser = require('body-parser') +// var multer = require('multer') +// var upload = multer({ dest: 'uploads/' }) + +var app = new express() +var server = http.createServer(app) + +app.disable('x-powered-by') +app.use(bodyParser.json({ limit: '100mb', })) +app.use(bodyParser.urlencoded({ extended: false, limit: '100mb', })) +app.use(express.static(path.join(__dirname, 'public'), { extensions: ['html'] })) +app.use(express.query()) + +var DATA_DIR = './public/data/' +var DATA_FILE = DATA_DIR + 'order.json' +var dirs = fs.readdirSync(DATA_DIR).map(file => { + if (file.indexOf('.') === 0 || ! fs.lstatSync(DATA_DIR + file).isDirectory() ) { + return null + } + return file +}).filter(n => !!n) + +app.get('/api/list', (req, res) => { + console.log('/api/list') + var list = dirs.map(file => { + return { + name: file, + files: fs.readdirSync(DATA_DIR + file).filter(f => f[0] !== '.'), + } + }) + res.json({ + order: fs.existsSync(DATA_FILE) + ? JSON.parse(fs.readFileSync(DATA_FILE).toString('utf-8')) + : { pairs: [] }, + list, + }) +}) + +app.post('/api/save', (req, res) => { + console.log('/api/save') + // console.log(req.body) + var data = JSON.stringify(req.body) + if (data.length > 3) { + fs.writeFileSync(DATA_FILE, data) + } + res.json({status: 'ok' }) +}) + +server.listen(process.env.EXPRESS_PORT || 8000, () => { + console.log('Wave sort listening on http://localhost:' + server.address().port) +}) |
