目录结构
head.jade
link(href="/libs/bootstrap/dist/css/bootstrap.min.css", rel="stylesheet")
script(src="/libs/jquery/dist/jquery.min.js")
script(src="/libs/bootstrap/dist/js/bootstrap.min.js")
header.jade
.container
.row
.page-header.clearfix
h1= title
.col-md-4
small 重度科幻迷
admin.jade
extends ../layout
block content
.container
.row
form.form-horizontal(method="post", action="/admin/movie", enctype="multipart/form-data")
.form-group
label.col-sm-2.control-label 豆瓣同步
.col-sm-10
input#douban.form-control(type="text")
if movie._id
input(type="hidden", name="movie[_id]", value=movie._id)
.form-group
label.col-sm-2.control-label(for="inputTitle") 电影名字
.col-sm-10
input#inputTitle.form-control(type="text", name="movie[title]", value=movie.title)
.form-group
label.col-sm-2.control-label(for="inputDoctor") 电影导演
.col-sm-10
input#inputDoctor.form-control(type="text", name="movie[doctor]", value=movie.doctor)
.form-group
label.col-sm-2.control-label(for="inputCountry") 国家
.col-sm-10
input#inputCountry.form-control(type="text", name="movie[country]", value=movie.country)
.form-group
label.col-sm-2.control-label(for="inputLanguage") 语种
.col-sm-10
input#inputLanguage.form-control(type="text", name="movie[language]", value=movie.language)
.form-group
label.col-sm-2.control-label(for="inputPoster") 海报地址
.col-sm-10
input#inputPoster.form-control(type="text", name="movie[poster]", value=movie.poster)
.form-group
label.col-sm-2.control-label(for="uploadPoster") 海报上传
.col-sm-10
input#uploadPoster(type="file", name="uploadPoster")
.form-group
label.col-sm-2.control-label(for="inputFlash") 片源地址
.col-sm-10
input#inputFlash.form-control(type="text", name="movie[flash]", value=movie.flash)
.form-group
label.col-sm-2.control-label(for="inputYear") 上映年代
.col-sm-10
input#inputYear.form-control(type="text", name="movie[year]", value=movie.year)
.form-group
label.col-sm-2.control-label(for="inputSummary") 电影简介
.col-sm-10
textarea#inputSummary.form-control(type="text", name="movie[summary]")= movie.summary
.form-group
.col-sm-offset-2.col-sm-10
button.btn.btn-default(type="submit") 录入
detail.jade
extends ../layout
block content
.container
.row
.col-md-7
embed(src="#{movie.flash}", allowFullScreen="true", quality="high", width="720", height="600", align="middle", allowScriptAcess="always", type="application/x-shockwave-flash")
.col-md-5
.dl-horizontal
dt 电影名字
dd= movie.title
dt 导演
dd= movie.doctor
dt 国家
dd= movie.country
dt 语言
dd= movie.language
dt 上映年份
dd= movie.year
dt 简介
dd= movie.summary
index.jade
extends ../layout
block content
.container
.row
each item in movies
.col-md-2
.thumbnail
a(href="/movie/#{item._id}")
img(src="#{item.poster}", alt="#{item.title}")
.caption
h3 #{item.title}
p: a.btn.btn-primary(href="/movie/#{item._id}",role="button")
观看影片
list.jade
extends ../layout
block content
.container
.row
table.table.table-hover.table-bordered
thead
tr
th 电影名字
th 导演
th 国家
th 上映年份
th 录入时间
th 查看
th 修改
th 删除
tbody
each item in movies
tr(class="item-id-#{item._id}")
td #{item.title}
td #{item.doctor}
td #{item.country}
td #{item.year}
//td #{moment(item.meta.updateAt).format('MM/DD/YYYY')}
td: a(target="_blank", href="/movie/#{item._id}") 查看
td: a(target="_blank", href="/admin/movie/update/#{item._id}") 修改
td
button.btn.btn-danger.del(type="button", data-id="#{item._id}") 删除
layout.jade
doctype
html
head
meta(charset="utf-8")
include ./includes/head
body
include ./includes/header
block content
app.js
var express = require('express');
var path = require('path')
var port = process.env.PORT || 3000;
var app = express();
app.set('views','views/pages');
app.set('view engine','jade');
app.use(express.static(path.join(__dirname, 'public')));
app.listen(port);
app.get('/',function(req,res){
res.render('index',{
title : "index",
movies:[{
title:'jxjs',
_id:1,
poster:"http://r3.ykimg.com/05160000530eeb63675839160d0b79d5"
}]
})
})
app.get('/movie/:id',function(req,res){
res.render('detail',{
title : "detail",
movie :{
doctor:'dd',
country:'ee',
title:'sss',
year:2014,
poster:'http://r3.ykimg.com/05160000530eeb63675839160d0b79d5',
language:'english',
flash:'http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf',
summary:'slsjlsj'
}
})
})
app.get('/admin/movie',function(req,res){
res.render('admin',{
title : "admin",
movie:{
title:'',
doctor:'',
country:'',
year:'',
poster:'',
flash:'',
summary:'',
language:''
}
})
})
app.get('/admin/list',function(req,res){
res.render('list',{
title : "list",
movies :[{
_id:1,
doctor:'dd',
country:'ee',
title:'sss',
year:2014,
poster:'http://r3.ykimg.com/05160000530eeb63675839160d0b79d5',
language:'english',
flash:'http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf',
summary:'slsjlsj'
}]
})
})