极简Node教程
模板引擎在了解模板引擎之前首先我们看看普通的动态插入生成HTML代码: 代码如下: // movie 对象 是一个json对象我们动态插入文档中 var movie = [ { "name" : "The Mirror", "year" : 2012 }, { "name": "last night", "year": 2016 } ]; $.each(movie,function (data) { if(data.length === 0) return; var partial = " 事实上partial的拼接字符串还不够长,或者我们实际做一个动态生成网页你就会明白痛苦所在。 快速了解模板引擎模板: 给定一个上下文: { title: "All about
选择模板引擎
嗯,我们不选择Express默认的Jade,因为它的缩进及抽象会让新手感到非常Angry的,相当于重新学了一遍html难道不是吗??值得一提的是,Jade和Express是同一个人发明的。 更为简单的Handlebars我们来看看Handlebars引擎是怎样使用上下文结合模板渲染HTML的: // res.render('admin/home',{ name:'Buttercup'})/************* admin / home.hbs **************/模板的复用与包含 如果我们有一个头部文件包含很多公共的静态资源引用,我们叫它模板A,那么我们如果每一个页面都重写一个模板A确实是太烦了,因此我们这样在任意模板引用它: // 引用以>开头 {{>A.hbs}}
// xx-header.hbs {{>xx_header.hbs}} 还有更为详尽的hbs语法详见 表单处理
/*****************************以上来自互联网********************/ 用户注册/********************register.js ********************/var router = require('express').Router();、router.route('/register') // 返回注册页面 .get(function (req, res) { res.render('account/register', {title: '注册'}) // 接受用户表单 .post(function (req, res, next) { var username = req.body.username, password = req.body.password; console.log('Register post received!'); console.log('username:', username, 'password::', password); res.end('成功收到POST请求'); });module.exports = router;我们逐步来分析上述代码做了什么? 首先实例化一个Router对象这样我们就能快捷方便的操作路由然后如果有人或者猫向/register这个路由发起get请求我们就扔给Ta一张account/resister的模板并把title渲染为注册。 如果有人或者猫这张表单发起post请求也就是提交表单 我们得到用户的账号密码并且在命令行打印出来相关信息。 表单的验证这里不会涉及因为大多数前端代码与静态代码一样,或者参加拙作javascript策略模式 小结
|