body-parser怎么在node.js中使用
本篇文章为大家展示了body-parser怎么在node.js中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Node中的核心模块分两类:一类是自带的核心模块,如http、tcp等,第二类是第三方核心模块,express就是与http对应的第三方核心模块,用于处理http请求。express在3.0版本中自带有很多中间件,但是在express 4.0以后,就将除static(静态文件处理)以外的其他中间件分离出来了;在4.0以后需要使用中间件时,就需要单独安装好相应的中间件以后调用,以下3.0与4.0中间件的中间件区别(3.0是内置中间件属性名,4.0是需要安装的中间件名称):
Express 3.0 Name | Express 4.0 Name |
bodyParser | body-parser |
compress | compression |
cookieSession | cookie-session |
logger | morgan |
cookieParser | cookie-parser |
session | express-session |
favicon | static-favicon |
response-time | response-time |
error-handler | errorhandler |
method-override | method-override |
timeout | connect-timeout |
vhost | vhost |
csrf | csurf |
body-parser
我是在学习nodejs时候,对着书本的例子时,使用bodyParser这个中间件,在终端运行出问题,报错大概意思也是express4.0中没有bodyParser这个内置中间件了,还给了body-parser的GitHub源代码地址:https://github.com/expressjs/body-parser.
经过看源代码下面的说明知道了body-parser的三种用法:
在讲用法之间,我们需要弄清楚下面四个不同的处理方法:这四个处理方法分别对body的内容采用不同的处理方法;分别是处理json数据、Buffer流数据、文本数据、UTF-8的编码的数据。
bodyParser.json(options)
、bodyParser.raw(options)
、bodyParser.text(options)
、bodyParser.urlencoded(options)
以下是它的三种用法:
1、底层中间件用法:这将拦截和解析所有的请求;也即这种用法是全局的。
varexpress=require('express') varbodyParser=require('body-parser') varapp=express() //parseapplication/x-www-form-urlencoded app.use(bodyParser.urlencoded({extended:false})) //parseapplication/json app.use(bodyParser.json()) app.use(function(req,res){ res.setHeader('Content-Type','text/plain') res.write('youposted:\n') res.end(JSON.stringify(req.body,null,2)) })
express的use方法调用body-parser实例;且use方法没有设置路由路径;这样的body-parser实例就会对该app所有的请求进行拦截和解析。
2、特定路由下的中间件用法:这种用法是针对特定路由下的特定请求的,只有请求该路由时,中间件才会拦截和解析该请求;也即这种用法是局部的;也是最常用的一个方式。
varexpress=require('express') varbodyParser=require('body-parser') varapp=express() //createapplication/jsonparser varjsonParser=bodyParser.json() //createapplication/x-www-form-urlencodedparser varurlencodedParser=bodyParser.urlencoded({extended:false}) //POST/logingetsurlencodedbodies app.post('/login',urlencodedParser,function(req,res){ if(!req.body)returnres.sendStatus(400) res.send('welcome,'+req.body.username) }) //POST/api/usersgetsJSONbodies app.post('/api/users',jsonParser,function(req,res){ if(!req.body)returnres.sendStatus(400) //createuserinreq.body })
express的post(或者get)方法调用body-parser实例;且该方法有设置路由路径;这样的body-parser实例就会对该post(或者get)的请求进行拦截和解析。
3、设置Content-Type 属性;用于修改和设定中间件解析的body类容类型。
//parsevariousdifferentcustomJSONtypesasJSON app.use(bodyParser.json({type:'application/*+json'}); //parsesomecustomthingintoaBuffer app.use(bodyParser.raw({type:'application/vnd.custom-type'})); //parseanHTMLbodyintoastring app.use(bodyParser.text({type:'text/html'}));
上述内容就是body-parser怎么在node.js中使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
node.js中Buffer对象有什么用
-
Node.js实现断点续传
Node.js实现断点续传目录方案分析切片断点续传具体解决流程逻辑分析前端服务端小结方案分析切片就是对上...
-
使用Node.js怎么实现一个HTTP服务器
这篇文章将为大家详细讲解有关使用Node.js怎么实现一个HTTP服务器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅...
-
使用Node.js怎么实现一个大文件分片上传功能
使用Node.js怎么实现一个大文件分片上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这...
-
jade模板引擎如何在Node.js中使用
-
如何在Node.js中引入UIBootstrap
-
Angular如何在Node.js中使用
-
AngularJS怎么在Node.js中使用
-
使用node.js如何连接mysql
使用node.js如何连接mysql?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人...
-
如何在node.js中使用Express服务器
这篇文章给大家介绍如何在node.js中使用Express服务器,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助...