-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.coffee
70 lines (57 loc) · 1.66 KB
/
app.coffee
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
express = require("express")
routes = require("./routes")
mongoose = require("mongoose")
mongoose.connect("mongodb://localhost/mongo_data");
app = module.exports = express.createServer()
app.configure ->
app.set "views", __dirname + "/views"
app.set "view engine", "jade"
app.use express.bodyParser()
app.use express.methodOverride()
app.use app.router
app.use express.static(__dirname + "/public")
app.configure "development", ->
app.use express.errorHandler(
dumpExceptions: true
showStack: true
)
app.configure "production", ->
app.use express.errorHandler()
Schema = mongoose.Schema
TodoSchema = new Schema
title: String
done: Boolean
Todo = mongoose.model('Todo', TodoSchema)
app.get "/", routes.index
app.get "/todos", (req, res) ->
Todo.find (error, todos) ->
if not error
res.json todos
else
res.json success: false
app.post "/todos", (req, res) ->
todo = new Todo(req.body)
todo.save (error) ->
if not error
res.json success: true
else
res.json success: false
app.put "/todos/:id", (req, res) ->
data = title: req.body.title, done: req.body.done
Todo.update {_id: req.params.id}, data, (error, todo) ->
if not error
res.json success: true
else
res.json success: false
app.delete "/todos/:id", (req, res) ->
Todo.findById req.params.id, (error, todo) ->
if not error
todo.remove (delete_error) ->
if not delete_error
res.json success: true
else
res.json success: false
else
res.json success: false
app.listen 8000, ->
console.log "Express server listening on port %d in %s mode", app.address().port, app.settings.env