中间件

作者: 海子小夜曲 | 来源:发表于2018-12-11 19:48 被阅读0次

中间件morgan

https://github.com/expressjs/morgan#url

- morgan 是用来展示http请求的这么一个中间件

var logger = require('morgan');

app.use(logger('dev'));

中间件body-parser

bodyParser用于解析客户端请求的body中的内容,内部使用JSON编码处理,url编码处理.

var bodyParser = require('body-parser');

//解析json,解析的content-type 等于application/json

app.use(bodyParser.json()); // for parsing application/json

//解析表单传输的数据,解析的content-type 等于application/x-www-form-urlencoded

app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded

app.post('/', function (req, res) {

console.log(req.body);

res.json(req.body);

})

req取参数的3种方法

传参的方式

1. 路径中通过url的地址 127.0.0.1:3000/getData/2/

2. get请求的url地址的后面使用?分隔后面加 name=zyc&password=123

req.params

req.body

req.query

1,

req.params

//用get请求传输过来的参数

app.get('/user/:id', function(req, res){

res.send('user ' + req.params.id);

});

注意点:取带冒号的参数

2,

req.body

可以肯定的一点是req.body一定是post请求,express里依赖的中间件必须有bodyParser,不然req.body是没有的。

3,

req.query

query是querystring

说明req.query不一定是get

// GET /search?q=tobi+ferret

req.query.q

// => "tobi ferret"

get 请求传参数的方式

1. 地址栏里面写url 127.0.0.1:3000/getData/123

后台接参数 通过在请求路径的字符串中添加:+参数名的形式去写

app.get('/getData/:num',function(req,res){

req.params.num

})

应用场景比如:

1. 小说网站通过地址栏里面的参数变化,修改请求小说的章节

2. qq空间通过地址栏的不一样,请求到不同人的空间

3. 分页

2. 地址栏里面用url加?的形式传参 127.0.0.1:3000/getData?name="zyc"&age=88

app.get('/getData',function(req,res){

console.log(req.query.name);

})

2. post 接收参数 post是通过报文体去传参

1. 先要加载body-parser中间件

2. 使用body-parser中间件里面的两个方法去接收参数

app.use(bodyParser.json());

app.use(bodyParser.urlencoded({ extended: true }));

3. 从req.body中去取值

应用场景:表单的提交,重要的内容

3. 变态的写法

使用post请求,但是要从url上面去传参

1. ajax的post请求里面写url 127.0.0.1:3000/getData/123

后台接参数 通过在请求路径的字符串中添加:+参数名的形式去写

app.post('/getData/:num',function(req,res){

通过req.params接收ajax请求地址里面的参数

通过req.body接收ajax请求中data中的参数

})

2. ajax的post请求里面写url 127.0.0.1:3000/getData?name=123

后台接参数 通过在请求路径的字符串中添加:+参数名的形式去写

app.post('/getData',function(req,res){

通过req.query接收ajax请求地址里面的参数

通过req.body接收ajax请求中data中的参数

})

路由中间件的作用

1.项目分工

2.提高可读性

3.对比起没有用路由中间件的写法代码更优雅了

路由中间件的使用

在早期的express中没有路由中间件。

在express早起版本将代码拆分模块的写法

在routes创建一个user.js,用于user模块代码的编写

module.exports = function(app) {

app.get('/getUser',function (req,res) {

    res.send("{success:true}");

} );

}

2.在app.js中引入这个模块

var user = require('./routes/user');

3.启用这个模块里面的路由

user(app);

使用路由中间件

1. 在routes创建一个user.js,用于user模块代码的编写

var express = require('express');

var router = express.Router();

router.get('/getUser', function(req, res) {

res.send("{success:true}");

});

module.exports = router;

2. 在app.js中引入这个模块

var user = require('./routes/user');

3. 启用这个模块里面的路由

app.use('/', user);

相关文章

  • 翻译

    Laravel 的路由中间件 简介 创建中间件 注册中间件全局中间件为路由指定中间件中间件组 中间件参数 Term...

  • 中间件学习——具体分类

    中间件分为远程过程调用中间件、数据访问中间件、消息中间件、事务(交易)处理中间件、分布式对象中间件。 远程过程调用...

  • nodejs19-express中间件

    中间件 匹配路由之前和之后做的操作 应用级中间件 路由级中间件 错误处理中间件 内置中间件 第三方中间件 应用级中...

  • 4.3KOA 中间件模块化与中间件合成

    中间件模块化与中间件合成 一、中间件模块化 定义中间件模块 使用中间件模块 二、使用 koa-compose 模块...

  • 4.2KOA 中间件执行流程

    中间件执行流程 代码执行流程 中间件 1 开始执行中间件 2 开始执行执行内容中间件 2 结束执行中间件 1 结束...

  • 13.中间件和上下文处理器

    中间件 中间件的引入image.png django中的中间件django 中的中间件(middleware),在...

  • Express学习

    使用中间件 Express 应用可使用如下几种中间件:* 应用级中间件* 路由级中间件* 错误处理中间...

  • Express 中间件

    中间件的概念 什么是中间件 中间件(Middleware),特指业务流程的中间处理环节。 Express 中间件的...

  • Scrapy爬虫框架(七) ------ 下载中间件(Midd

    1. Spider 下载中间件(Middleware) Spider 中间件(Middleware) 下载器中间件...

  • laravel api设置Accept 头

    一、创建中间件设置Accept 头 生成中间件 设置Accept头 将中间件添加到api中间件组中

网友评论

      本文标题:中间件

      本文链接:https://www.haomeiwen.com/subject/hpoehqtx.html