内容渲染大多数情况下,渲染内容用res.render。如果想写一个快速的测试页,也许你会用res.send。 你可以使用req.query得到查询字符串值,使用req.session得到会话值,或使用req.cookie/req.singedCookies得到cookies值。下面小编给大家讲下常见的内容渲染的方法:
基本用法显示view目录下的视图模板about
.get((reqres){ res.()})200以外的响应代码
.get((reqres){ res.().()})通过对象的形式给视图传值
.get((reqres){ res.({ ::req..:req..:req.session.})})没有布局的视图渲染
.get((reqres){ res.({:})})使用自定义布局渲染视图
.get((reqres){ res.({:}) })纯文本输出
.get((reqres){ res.()res.()})添加错误处理程序
.((errreqresnext){ .(err.)res.()consle.(err.)res.()})404处理程序
.((reqresnext){ res.()res.()})
www-form-urlencodedhttp默认的post请求是这种方式,我们经常写的表单请求就是这一种方式,node.js 下使用Express 如何接收这种提交方式.需要 body-parse中间件支持,通过require('body-parser')方法进行引用。接下来我们创建一个简单的路由,接收请求,具体代码如下:
.post((reqres) { .(req.)res.(req.)})
现在用postman(一个挺实用的请求模拟谷歌浏览器插件)模拟一个post请求,查看截图可以看到 200 状态,成功识别了请求参数并且返回来。
form-data 也是我们一个很常见的提交数据方式,和上面不同的是我们需要在form表单里需要有 enctype 标识。比如我们在上传文件的时候必须在form里包含enctype="multipart/form-data”这样的标识。如果要支持这种方式,我们需要引用中间件 connect-multiparty,官方地址 https://github.com/andrewrk/connect-multiparty,通过npm install connect-multiparty 进行安装中间件。使用也非常简单,具体代码如下:
= ()= ().post((reqres) { .(req.)res.(req.)})由于postman没办法模拟图片提交,只能模拟参数提交同样能正常直接返回客户端,具体示意请查看下图
application/json基于API接口开发的应用一般都会用这种方式,高效方便利用数据的处理。注意在http表单请求前,注明请求头为 content-type=application/json ,具体的示意代码如下:
.(.({: })).post((reqres) { .(req.)res.(req.)})接下来我们用postman模拟JSON请求
text/xml这种请求一般不是特别常见,body-parse默认也不解析这种数据格式。但是随着微信平台开发市场的火爆,这类需求也会经常遇到,小编刚开始用的时候也是不太适应,在Express中没有现成的好办法,我们只能通过自己写代码进行实现,我们可以把请求题参数按照字符串处理,然后使用 xml2json 包把字符串解析成json对象,这样问题就迎刃而解了。
首先我们需要通过 npm install xml2json 命令安装 xml2json 插件。然后利用req上定义的事件 data 来获取http请求流, end 事件结束请求流的处理。前提是我们http请求头必须是content-type=text/xml,具体相关的示意代码如下:
=().post((reqres) { req.= ={}req.()req.((chunk) { req.+= chunk})req.(() { =.(req.)res.(.())})})最后同样我们用postman模拟xml格式进行提交,然后返回成json格式输出到客户端,查看下图
今天的介绍就到这里,相信大家一定掌握了本篇的内容。理解本篇的内容十分重要,下面的内容小编将带着大家深入的学习表单处理、模板视图等...