-
Notifications
You must be signed in to change notification settings - Fork 0
/
server.js
61 lines (52 loc) · 1.54 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
'use strict';
var express = require('express'),
path = require('path'),
fs = require('fs'),
dummydata = require('./dummydata'),
mongoose = require('mongoose'),
Schema = mongoose.Schema;
var db = mongoose.connect('mongodb://localhost/angular-lei');
var BeerSchema = new Schema({
title: String,
brand: String,
image: String,
size: Number,
price: Number
}, { collection: 'beers' });
var Beers = mongoose.model('Beer', BeerSchema);
// Setup default db data
Beers.find({}).remove(function() {
Beers.create(dummydata, function() {
console.log("Finished populating default data")
});
});
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use("/", express.static(path.join(__dirname, 'app')));
app.use(app.router);
});
app.get('/api/beers', function(req, res) {
Beers.find().exec().then(function(beers) {
return res.send(beers);
});
});
app.get('/api/beers/:id', function(req, res) {
Beers.findById(req.params.id).exec().then(function(beer) {
return res.send(beer);
});
});
app.get('*', function(req, res) {
res.render('index');
});
app.listen(app.get('port'), function() {
console.log('Express server listening on port %d in %s mode', app.get('port'), app.get('env'));
});
exports = module.exports = app;