1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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)
})
|