最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

极简Node教程-七天从小白变大神(三:你所不知道的模板表单)_html/css_WEB-ITnose

来源:懂视网 责编:小采 时间:2020-11-27 16:39:18
文档

极简Node教程-七天从小白变大神(三:你所不知道的模板表单)_html/css_WEB-ITnose

极简Node教程-七天从小白变大神(三:你所不知道的模板表单)_html/css_WEB-ITnose:模板引擎 在了解模板引擎之前首先我们看看普通的动态插入生成HTML代码: 代码如下: // movie 对象 是一个json对象我们动态插入文档中 var movie = [ { name : The Mirror, year : 2012 }, { name: last night,
推荐度:
导读极简Node教程-七天从小白变大神(三:你所不知道的模板表单)_html/css_WEB-ITnose:模板引擎 在了解模板引擎之前首先我们看看普通的动态插入生成HTML代码: 代码如下: // movie 对象 是一个json对象我们动态插入文档中 var movie = [ { name : The Mirror, year : 2012 }, { name: last night,

选择模板引擎

事实上有大概十多种模板可供选择:

嗯,我们不选择Express默认的Jade,因为它的缩进及抽象会让新手感到非常Angry的,相当于重新学了一遍html难道不是吗??值得一提的是,Jade和Express是同一个人发明的。

更为简单的Handlebars

我们来看看Handlebars引擎是怎样使用上下文结合模板渲染HTML的:

 // res.render('admin/home',{ name:'Buttercup'})/************* admin / home.hbs **************/ 

the home

Welcome , {{name}}

/*************** entry HTML ********************/

the home

Welcome , Buttercup

模板的复用与包含

如果我们有一个头部文件包含很多公共的静态资源引用,我们叫它模板A,那么我们如果每一个页面都重写一个模板A确实是太烦了,因此我们这样在任意模板引用它:

 // 引用以>开头 {{>A.hbs}}

小提示: 如果你的文件包含"-"这个符号,是这样引用的:

 // xx-header.hbs {{>xx_header.hbs}}

还有更为详尽的hbs语法详见

表单处理

一个HTTP表单请求一般包括四部分的内容:HTTP方法(method),用来标识对资源的操作,对应上述的POST。路径(path),用来标识资源的位置,对应上述的/some/thing;URL参数(query),对应上述的guest=true;请求体(body),即请求附带的数据,对应上述的title=test&subtitle=somefinetitle。

请求体(body)往往是表单的主体。可能包括几个键值对,或者json数据,甚至可能是二进制文件。对于不同的内容我们需要请求体编码,否则服务器将很难知道我们提交的到底是什么东西。HTTP协议使用MIME框架来进行请求体编码,并在请求头的Content-Type字段指定编码类型。表单中常用的又如下3种内容编码(MIME类型):urlencoded:就像GET请求中的URL那样进行编码,例如title=test&subtitle=somefinetitle;multipart:使用定界符分隔的表单,一般用来包含二进制的文件;json:顾名思义,这时可以提交一个json对象到服务器。我们已经了解到了HTTP协议可以用来传输HTML文件给客户端。那么服务器如何接受用户的操作呢?这便需要HTTP POST方法,和Web表单的帮助。在继续开发之前,先来了解一下HTTP表单的基础知识。

HTTP 协议提供了6中方法,该方法名将作为HTTP请求头部字段,用来标识操作的类型:

GET:获取URI制定的信息。HEAD:同GET,但服务器不返回消息体。POST:请求服务器接受请求中包装的实体,将其作为URI标识的资源的附属信息。PUT:让服务器将请求中包装的实体存储为URI标识位置。DELETE:让服务器将URI标识的资源删除。TRACE:调用远程的应用层环回。最终服务器应将收到的消息包装为实体并返回状态码为200的应答。还记得吗?服务器传输HTML文件给客户端使用的是HTTP GET方法。客户端提交信息给服务器,常常采用POST方法。Web表单(form)是一种特殊的HTML标签,它负责产生一个POST请求给服务器,并拿回结果给浏览器。

 /*****************************以上来自互联网********************/

用户注册

/********************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请求也就是提交表单 我们得到用户的账号密码并且在命令行打印出来相关信息。

小问题:本来如果没有安装body-parser第三方模块的话,我们是不能使用xxx.body.yyy这种形式的,一切都来自xxx.query.yyy ,query是用来表示参数的。如同这个req.body.username,是指属性name为username的值我们把它给提交给服务器来处理。

表单的验证这里不会涉及因为大多数前端代码与静态代码一样,或者参加拙作javascript策略模式

小结

很惭愧粗略的讲了一下表单与模板引擎

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

极简Node教程-七天从小白变大神(三:你所不知道的模板表单)_html/css_WEB-ITnose

极简Node教程-七天从小白变大神(三:你所不知道的模板表单)_html/css_WEB-ITnose:模板引擎 在了解模板引擎之前首先我们看看普通的动态插入生成HTML代码: 代码如下: // movie 对象 是一个json对象我们动态插入文档中 var movie = [ { name : The Mirror, year : 2012 }, { name: last night,
推荐度:
标签: html css web
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top