]>
git.immae.eu Git - perso/Immae/Projets/Nodejs/Surfer.git/blob - server.js
6 var express
= require('express'),
7 morgan
= require('morgan'),
8 passport
= require('passport'),
9 path
= require('path'),
10 compression
= require('compression'),
11 session
= require('express-session'),
12 bodyParser
= require('body-parser'),
13 cookieParser
= require('cookie-parser'),
14 lastMile
= require('connect-lastmile'),
15 multipart
= require('./src/multipart'),
16 mkdirp
= require('mkdirp'),
17 auth
= require('./src/auth.js'),
18 serveIndex
= require('serve-index'),
19 files
= require('./src/files.js')(path
.resolve(__dirname
, process
.argv
[2] || 'files'));
22 var router
= new express
.Router();
24 var multipart
= multipart({ maxFieldsSize: 2 * 1024, limit: '512mb', timeout: 3 * 60 * 1000 });
26 router
.post ('/api/login', auth
.login
);
27 router
.post ('/api/logout', auth
.verify
, auth
.logout
);
28 router
.get ('/api/profile', auth
.verify
, auth
.getProfile
);
29 router
.get ('/api/files/*', auth
.verify
, files
.get);
30 router
.post ('/api/files/*', auth
.verify
, multipart
, files
.post
);
31 router
.put ('/api/files/*', auth
.verify
, files
.put
);
32 router
.delete('/api/files/*', auth
.verify
, files
.del
);
33 router
.get ('/api/healthcheck', function (req
, res
) { res
.status(200).send(); });
35 // welcome screen in case / does not serve up any file yet
36 function welcomePage(req
, res
, next
) {
37 if (req
.path
!== '/') return next();
39 res
.status(200).sendFile(path
.join(__dirname
, '/frontend/welcome.html'));
41 // router.get('/', function (req, res) { res.status(200).sendFile(path.join(__dirname, '/frontend/welcome.html')); });
43 var rootFolder
= path
.resolve(__dirname
, process
.argv
[2] || 'files');
45 app
.use(morgan('dev'));
46 app
.use(compression());
47 app
.use('/api', bodyParser
.json());
48 app
.use('/api', bodyParser
.urlencoded({ extended: false, limit: '100mb' }));
49 app
.use('/api', cookieParser());
50 app
.use('/api', session({ secret: 'surfin surfin', resave: false, saveUninitialized: false }));
51 app
.use('/api', passport
.initialize());
52 app
.use('/api', passport
.session());
54 app
.use('/_admin', express
.static(__dirname
+ '/frontend'));
55 app
.use('/', express
.static(rootFolder
));
56 app
.use('/', welcomePage
);
57 app
.use('/', serveIndex(rootFolder
, { icons: true }));
60 var server
= app
.listen(3000, function () {
61 var host
= server
.address().address
;
62 var port
= server
.address().port
;
64 var basePath
= path
.resolve(__dirname
, process
.argv
[2] || 'files');
65 mkdirp
.sync(basePath
);
67 console
.log('Surfer listening at http://%s:%s', host
, port
);
68 console
.log('Using base path', basePath
);