-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
65 lines (65 loc) · 1.75 KB
/
app.js
File metadata and controls
65 lines (65 loc) · 1.75 KB
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
(function() {
var Todo, app, express, mongoose;
express = require('express');
mongoose = require('mongoose');
mongoose.connect(process.env.MONGOLAB_URI || 'mongodb://localhost/todone');
Todo = mongoose.model('Todo', new mongoose.Schema({
content: String,
done: Boolean
}));
app = express.createServer();
app.register('.coffee', require('coffeekup'));
app.set('view engine', 'coffee');
app.set('views', __dirname + '/views');
app.set('view options', {
layout: false
});
app.configure(function() {
app.use(express.bodyParser());
app.use(express.methodOverride());
return app.use(express.static(__dirname + '/public'));
});
app.get("/", function(req, res) {
return res.render("app");
});
app.get("/todos", function(req, res) {
return Todo.find(function(err, todos) {
return res.send(todos);
});
});
app.post("/todos", function(req, res) {
var todo;
todo = new Todo({
content: req.body.content,
done: req.body.done
});
todo.save(function(err) {
if (!err) {
return console.log("created");
}
});
return res.send(todo);
});
app.put("/todos/:id", function(req, res) {
return Todo.findById(req.params.id, function(err, todo) {
todo.content = req.body.content;
todo.done = req.body.done;
return todo.save(function(err) {
if (!err) {
console.log("updated");
}
return res.send(todo);
});
});
});
app.del('/todos/:id', function(req, res) {
return Todo.findById(req.params.id, function(err, todo) {
return todo.remove(function(err) {
if (!err) {
return console.log("removed");
}
});
});
});
app.listen(process.env.PORT || 3000);
}).call(this);