Chapter:10.服务端环境搭建和开发过程
10.7页面路由的完整开发(用于页面跳转)
结构都差不多,基本复制粘贴改一下名称就行了,有点不同的是书籍详情页,需要从url里读取参数并转化为object格式,最后传递到模板里
页面路由代码
*10.7页面路由的完整开发 */
//主页ejs模板路由
app.use(controller.get('/',function*(){
this.set('Cache-Control','no-cache');//设置HTTP返回头,不缓存内容
this.body=yield render('index',{title:'书城首页'});//如果用不上的话这里可以不传递参数
//yield语句 是es6的语言特性generator函数,用于完成异步函数的执行,阮一峰的博客介绍得比较详细
//render的参数1是模板(html文件)的名字,在初始化render时设置的路径里寻找,参数2是传入模板的"变量:变量值"键值对
//参数2并不一定要传进去,如果模板用不上这个参数的话
}));
//排行ejs模板路由
app.use(controller.get('/rank',function*(){
this.set('Cache-Control','no-cache');//设置HTTP返回头,不缓存内容
this.body=yield render('rank',{title:'排行页'});
//yield语句 是es6的语言特性generator函数,用于完成异步函数的执行,阮一峰的博客介绍得比较详细
//render的参数1是模板(html文件)的名字,在初始化render时设置的路径里寻找,参数2是传入模板的"变量:变量值"键值对
}));
//男频ejs模板路由
app.use(controller.get('/male',function*(){
this.set('Cache-Control','no-cache');//设置HTTP返回头,不缓存内容
this.body=yield render('male',{title:'男频页'});
//yield语句 是es6的语言特性generator函数,用于完成异步函数的执行,阮一峰的博客介绍得比较详细
//render的参数1是模板(html文件)的名字,在初始化render时设置的路径里寻找,参数2是传入模板的"变量:变量值"键值对
}));
//女频ejs模板路由
app.use(controller.get('/female',function*(){
this.set('Cache-Control','no-cache');//设置HTTP返回头,不缓存内容
this.body=yield render('female',{title:'女频页'});
//yield语句 是es6的语言特性generator函数,用于完成异步函数的执行,阮一峰的博客介绍得比较详细
//render的参数1是模板(html文件)的名字,在初始化render时设置的路径里寻找,参数2是传入模板的"变量:变量值"键值对
}));
//目录ejs模板路由
app.use(controller.get('/category',function*(){
this.set('Cache-Control','no-cache');//设置HTTP返回头,不缓存内容
this.body=yield render('category',{title:'目录页'});
//yield语句 是es6的语言特性generator函数,用于完成异步函数的执行,阮一峰的博客介绍得比较详细
//render的参数1是模板(html文件)的名字,在初始化render时设置的路径里寻找,参数2是传入模板的"变量:变量值"键值对
}));
//书籍详情ejs模板路由(需要读取地址栏输入url里的参数)
app.use(controller.get('/book',function*(){
this.set('Cache-Control','no-cache');//设置HTTP返回头,不缓存内容
var params=querystring.parse(this.req._parsedUrl.query);//读取地址栏url参数并转为结构体格式
var id=params.id;//赋值给本地变量
this.body=yield render('book',{bookId:id});//将参数传入模板
//yield语句 是es6的语言特性generator函数,用于完成异步函数的执行,阮一峰的博客介绍得比较详细
//render的参数1是模板(html文件)的名字,在初始化render时设置的路径里寻找,参数2是传入模板的"变量:变量值"键值对
}));
//搜索ejs模板模板路由
app.use(controller.get('/search',function*(){
this.set('Cache-Control','no-cache');//设置HTTP返回头,不缓存内容
this.body=yield render('search',{title:'搜索页面'});
//yield语句 是es6的语言特性generator函数,用于完成异步函数的执行,阮一峰的博客介绍得比较详细
//render的参数1是模板(html文件)的名字,在初始化render时设置的路径里寻找,参数2是传入模板的"变量:变量值"键值对
}));
网友评论