-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserver.js
89 lines (79 loc) · 2.06 KB
/
server.js
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
var express = require('express'),
browserify = require('browserify-middleware'),
reactify = require('reactify'),
less = require('less-middleware'),
nunjucks = require('nunjucks'),
config = require('./client/config');
// initialise express
var app = express();
// use nunjucks to process view templates in express
nunjucks.configure('server/templates/views', {
express: app
});
// less will automatically compile matching requests for .css files
app.use(less('public'));
// public assets are served before any dynamic requests
app.use(express.static('public'));
// common packages are precompiled on server start and cached
app.get('/js/' + config.common.bundle, browserify(config.common.packages, {
cache: true,
precompile: true
}));
// any file in /client/scripts will automatically be browserified,
// excluding common packages.
app.use('/js', browserify('./client/scripts', {
external: config.common.packages,
transform: ['reactify']
}));
/*
set up any additional server routes (api endpoints, static pages, etc.)
here before the catch-all route for index.html below.
*/
app.get('/', function (req, res) {
// this route will respond to all requests with the contents of your index
// template. Doing this allows react-router to render the view in the app.
res.render('index.html');
});
app.get('/api/places', function (req, res) {
var places = [{
id: '1',
name: 'Big bar',
reservation: {
left: {
reserved: false
},
right: {
reserved: false
}
}
}, {
id: '2',
name: 'Dat bar',
reservation: {
left: {
reserved: true,
nickname: 'Bob'
},
right: {
reserved: false
}
}
}, {
id: '3',
name: 'Foo bar',
reservation: {
left: {
reserved: false
},
right: {
reserved: true,
nickname: 'Billy'
}
}
}];
res.status(200).send(places);
});
// start the server
var server = app.listen(process.env.PORT || 3000, function () {
console.log('\nServer ready on port %d\n', server.address().port);
});