Express中间件

中间件

就是处理过程中的一个环节
    应用级中间件
    路由级中间件
    错误处理中间件
    内置中间件
    第三方中间件

 应用级中间件

const express = require('express');
const app = express();

let  total = 0;
app.use('/user', (req, res, next) => {
	console.log(Data.now());
	//next 方法的作用就是把请求传递到下一个中间件
	next()
});

app.use('/user', (req, res, next) => {
	console.log('访问了/user');
	next()
});

app.use('/user', (req, res) => {
	total ++;
	console.log(total);
	res.send('result');
});

app.listen(3000, () => {
	console.log('running ...');
});

路由级中间件

中间件的挂载方式

use 路由方式(get post delete put)

const express = require('express');
const app = express();

app.get('/abc', (req, res, next) => {
	console.log(1);
	//next();
	//跳转到下一个路由
	next('route');
}, (req, res) => {
	console.log(2);
	res.send('abc');
});

app.get('/abc', (req, res) => {
	console.log(3);
	res.send('hello');
});

app.listen(3000, () => {
	console.log('running...');
});

//另外一种书写方式
const express = require('express');
const app = express();
var ch0 = function(req, res, next){
	console.log('ch0');
	next();
}
var ch1 = function(req, res, next){
	console.log('ch1');
	next();
}
var ch2 = function(req, res){
	console.log('ch2');
}
app.get('/example', [ch0, ch1, ch2]);
app.listen(3000, ()=>{
	console.log('running...');
});

内置中间件

static

错误处理中间件

第三方中间件

npm install body-parser --save

const express = require('express');
const app = express();
const bodyparser = require('body-parser');

app.use(bodyparser.urlencoded({extended: false}));

app.get('/login', (req, res) => {
	let data = req.query;
	console.log(data);
	res.send('get data');
});
//处理json数据
app.use(bodyparser.json());

//处理post请求参数
app.post('/login', (req, res) => {
	let data = req.body;
	console.log(data);
	res.send('ok');
});

app.put('/login', (req, res) => {
	res.end('put data');
});

app.delete('/login', (req, res) => {
	res.end('delete data');
});

app.listen(3000, ()=>{
	console.log('running...');
});

模板引擎整合

npm install art-template --save
npm install --save express-art-template                

index.js

const express = require('express');
const template = require('art-template');
const app = express();
const path = require('path');
//设置模板的路径
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'art');
//使express兼容模板引擎
app.engine('art', require('express-art-template'));

app.get('/list', (req, res) => {
	let data = {
		title: '水果',
		list: ['apple','pear']
	}
	//参数一:模板的名称 参数二:数据
	res.render('list', data);
});

app.listen(3000, () => {
	console.log('running');
});

list.art

<div>{{title}}</div>
<div>
	<ul>
		{{each list}}
			<li>{{$value}}</li>
		{{/each}}
	</ul>
</div>

以上是Express中间件的简要介绍以及部分测试代码。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值