-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
78 lines (66 loc) · 2.04 KB
/
Copy pathserver.js
File metadata and controls
78 lines (66 loc) · 2.04 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
66
67
68
69
70
71
72
73
74
75
76
77
var http = require('http');
var utils = require('util');
var utilsHttp = require('./utilsHttp');
var Router = require('./router');
var DataBase = require('./mockDB');
var Chuck = require('./chuck')
var blog = new DataBase();
var router = new Router();
var chuck = new Chuck();
router.get('^/chuck/?$', function(req, res) {
return chuck.random(function(err, joke) {
return res.end(err ? err.message : joke)
})
});
router.get('^/posts/?$', function(req, res) {
var options = {posts: blog.posts()};
utilsHttp.renderHtml('posts/list.html', res, options)
});
router.get('^/posts/(\\d+)$', function(req, res, params) {
var post = blog.get(params[0]);
if (!post) utilsHttp.error404(res);
var options = {locals: {post: post}};
utilsHttp.renderHtml('posts/show.html', res, options);
})
router.get('^/posts/new/?$', function(req, res) {
var options = {};
utilsHttp.renderHtml('posts/new.html', res, options);
});
router.post('^/posts/?$', function(req, res) {
utilsHttp.parser(req, function(body) {
var post = {
title: body.title,
content: body.content
}
blog.add(post);
utilsHttp.redirect('/posts', res);
});
});
router.post('^/posts/(\\d+)/delete/?$', function(req, res, params) {
var id = params[0];
if (blog.get(id)) blog.remove(id);
utilsHttp.redirect('/posts', res);
});
router.get('^/posts/(\\d+)/edit', function(req, res, params) {
var post = blog.get(params[0]);
if (!post) utilsHttp.error404(res);
var options = {locals: {post: post}};
utilsHttp.renderHtml('posts/edit.html', res, options);
});
router.post('^/posts/(\\d+)/edit', function(req, res, params) {
var id = params[0];
if (!blog.get(id)) utilsHttp.render404(res);
utilsHttp.parser(req, function(body) {
var post = {
title: body.title,
content: body.content
};
blog.update(id, post);
utilsHttp.redirect('/posts', res);
});
})
var server = http.createServer(function(req, res) {
router.transmit(req, res);
}).listen(9292, function() {
console.log("This guy is listening on http://127.0.0.1:9292");
})