-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
37 lines (31 loc) · 791 Bytes
/
server.js
File metadata and controls
37 lines (31 loc) · 791 Bytes
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
'use strict';
var fs = require('fs');
var http = require('http');
var actions = require('./actions');
var APIS = {
GET: {
'/api/users/': actions.getUser,
'/api/users': actions.getUsers,
'/api/files/': actions.getFile,
'/api/files': actions.getFiles
},
POST: {
'/api/users/': actions.saveUser,
'/api/user': actions.createUser,
'/api/files': actions.uploadFile
}
};
function handleRequest(req, res) {
for (var apiUrl in APIS[req.method]) {
if (req.url.indexOf(apiUrl) === 0) {
APIS[req.method][apiUrl](req, res);
return;
}
}
fs.createReadStream('public/' + req.url)
.on('error', function() {
fs.createReadStream('public/index.html').pipe(res);
})
.pipe(res);
}
http.createServer(handleRequest).listen(8080);