-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathapp.js
215 lines (175 loc) · 6.39 KB
/
app.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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
var express=require('express')
var app = express()
var path = require('path')
var mongoose = require('mongoose')
var Movie = require("./models/movie.js")
var port = process.env.PORT || 3000
var _ = require("underscore")
mongoose.connect('mongodb://localhost/imooc')
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
//http://www.expressjs.com.cn/guide/using-template-engines.html
//在 Express 中使用模板引擎
// 需要在应用中进行如下设置才能让 Express 渲染模板文件:
// views, 放模板文件的目录,比如: app.set('views', './views')
// view engine, 模板引擎,比如: app.set('view engine', 'jade')
app.set('views','./views/pages') //视图的路径,即后面index,admin,list,detail的文件位置
app.set('view engine','jade') //模板引擎
app.use(express.static(path.join(__dirname,'public'))) //静态文件的路径
app.locals.moment=require('moment')
app.listen(port)
console.log("server running at 3000")
app.get('/',function(req,res){
Movie.fetch(function(err,movies){
if(err){
console.log(err)
}
res.render('index',{
title:'imooc 首页',
movies:movies
})
})
//之前伪造的数据
// [
// {
// title:"机械战警",
// _id:1,
// poster:"http://r3.ykimg.com/05160000530EEB63675839160D0B79D5"
// },
// {
// title:"X战警",
// _id:2,
// poster:"http://r3.ykimg.com/05160000530EEB63675839160D0B79D5"
// },
// {
// title:"皇家骑士",
// _id:3,
// poster:"http://r3.ykimg.com/05160000530EEB63675839160D0B79D5"
// }
// ]
})
app.get('/movie/:id',function(req,res){
var id=req.params.id //url中的id
Movie.findById(id,function(err,movie){
res.render('detail',{
title:'imooc '+movie.title,
movie:movie
})
})
// [{
// doctor:'何塞.帕迪利亚',
// country:"美国",
// title:"机械战警",
// year:2014,
// poster:"http://r3.ykimg.com/05160000530EEB63675839160D0B79D5",
// language:"英语",
// flash:"http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf",
// summary:"《机械战警》是由何塞·帕迪里亚执导,乔尔·金纳曼、塞缪尔·杰克逊、加里·奥德曼等主演的一部科幻电影,改编自1987年保罗·范霍文执导的同名电影。影片于2014年2月12日在美国上映,2014年2月28日在中国大陆上映。影片的故事背景与原版基本相同,故事设定在2028年的底特律,男主角亚历克斯·墨菲是一名正直的警察,被坏人安装在车上的炸弹炸成重伤,为了救他,OmniCorp公司将他改造成了生化机器人“机器战警”,代表着美国司法的未来。"
// }]
})
//admin update movie
app.get('/admin/update/:id',function(req,res){
var id = req.params.id
if(id){
Movie.findById(id,function(err,movie){
res.render('admin',{
title:'imooc 后台更新页',
movie:movie
})
})
}
})
//admin post method
app.post('/admin/movie/new',function(req,res){
var id = req.body.movie._id
var movieObj = req.body.movie
console.log("ha")
var _movie =null
if(id !== 'undefined'){
Movie.findById(id,function(err,movie){
if(err){
console.log(err)
}
_movie=_.extend(movie,movieObj)
_movie.save(function(err,movie){
if (err) {
console.log(err)
}
res.redirect('/movie/'+movie._id)
})
})
}
else{
_movie = new Movie({
doctor:movieObj.doctor,
title:movieObj.title,
country:movieObj.country,
language:movieObj.language,
year:movieObj.year,
poster:movieObj.poster,
summary:movieObj.summary,
flash:movieObj.flash
})
_movie.save(function(err,movie){
if (err) {
console.log(err)
}
res.redirect('/movie/'+movie._id)
})
}
})
app.get('/admin/movie',function(req,res){
res.render('admin',{
title:'imooc 后台管理页',
movie:{
title:"",
doctor:"",
country:"",
year:"",
poster:"",
flash:"",
summary:"",
language:""
}
})
})
app.get('/admin/list',function(req,res){
Movie.fetch(function(err,movies){
if(err){
console.log(err)
}
res.render('list',{
title:'imooc 首页',
movies:movies
})
})
// res.render('list',{
// title:'imooc 列表页',
// movies:[{
// title:"机械战警",
// _id:1,
// doctor:'何塞.帕迪利亚',
// country:"美国",
// year:2014,
// poster:"http://r3.ykimg.com/05160000530EEB63675839160D0B79D5",
// language:"英语",
// flash:"http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf",
// summary:"《机械战警》是由何塞·帕迪里亚执导,乔尔·金纳曼、塞缪尔·杰克逊、加里·奥德曼等主演的一部科幻电影,改编自1987年保罗·范霍文执导的同名电影。影片于2014年2月12日在美国上映,2014年2月28日在中国大陆上映。影片的故事背景与原版基本相同,故事设定在2028年的底特律,男主角亚历克斯·墨菲是一名正直的警察,被坏人安装在车上的炸弹炸成重伤,为了救他,OmniCorp公司将他改造成了生化机器人“机器战警”,代表着美国司法的未来。"
// }
// ]
// })
})
// list delete movie data 列表页删除电影
app.delete('/admin/list', function (req, res) {
var id = req.query.id;
if (id) {
Movie.remove({_id: id}, function (err, movie) {
if (err) {
console.log(err);
} else {
res.json({success: 1});
}
});
}
});