Express 是一个基于node平台的,快速开放,极简的web开发模式
Express框架是后台的Node框架
Express在后台的受欢迎程度类似前端的Jquery,是企业的标准
Express的特点:
Express是一个基于node.js平台的极简,灵活的web应用开发框架,它提供了一系列强大的特性,帮你创建各种web和移动设备应用
丰富的http快捷方法和任意排列组合的connect中间件,让你创建健壮,友好的API变得即快速又简单
Express官网:
http://express.com
Express安装
npm i express --save
Express 使用:
1.引入
const express = require('express');
let app = express()
2.配置路由
app.get('/',function(req,res){
res.send('hello world')
}) //根路由
app.get('/news',function(req,res){
res.send('new 模块')
})//new路由 二级路由
3.监听端口
app.listen(3000,'127.0.0.1');
4.动态路由
app.get('/login/:id',function(req,res){
res.send('login页面');
req.params//得到路由
})
//get请求值
app.get('/new',function(req,res){
res.send('新闻页面');
req.query //得到传参
})
//渲染ejs模板
app.set('view engine','ejs'); //配置ejs的模板引擎
app.set('view',__dirname+'/views'); //设置模板的位置
Express中间件
1.中间件(middleware)是一个函数,他可以访问请求对象(request object(req)),响应对象(response object(res)),和web引用处理请求-响应 循环流程中的中间件,一般命名为next的变量
我的认知就是中间件就是一个中介,匹配request对象和response对象,一般node中如果使用到use方法就是中间件
中间件的分类:、
1.应用级中间件
//引入express框架
const express = require('express');
let app = express();
//配置ejs模板引擎
app.set('view engine','ejs');
//配置模板的位置
app.set('views',__dirname+'/views');
//2.配置路由
//应用级中间件,相当于vue中的全局守卫,一般使用use就是使用中间件
app.use(function (req,res,next) {
console.log(123);
next()
})
app.get('/',function (req,res) {
res.send('hello world')
})
app.get('/login',function (req,res) {
let data = ['haha','xixi'];
res.render('index',{list:data})
res.send('login页面')
})
//3.监听端口
app.listen(8001,'127.0.0.1');
2.路由中间件
//引入express框架
const express = require('express');
let app = express();
//配置ejs模板引擎
app.set('view engine','ejs');
//配置模板的位置
app.set('views',__dirname+'/views');
//2.配置路由
app.get('/',function (req,res) {
res.send('hello world')
})
//路由中间件,相当于路由守卫
app.get('/login',function (req,res,next) {
res.send('login页面')
next()
})
//路由中间件,相当于DOM0级和DOM2级的区别
app.get('/login',function (req,res) {
console.log(123);
})
//3.监听端口
app.listen(8002,'127.0.0.1');
3.错误处理中间件
//引入express框架
const express = require('express');
let app = express();
//配置ejs模板引擎
app.set('view engine','ejs');
//配置模板的位置
app.set('views',__dirname+'/views');
//2.配置路由
app.get('/',function (req,res) {
res.send('hello world')
})
app.get('/login',function (req,res) {
res.send('login页面')
})
//错误处理中间件
app.use(function (req,res) {
res.status(404).send('这个是404页面')
})
//3.监听端口
app.listen(8005,'127.0.0.1');
4.内置中间件
//引入express框架
const express = require('express');
let app = express();
//托管静态文件
app.use(express.static('public'));
app.use('static',express.static('public')); //会默认去public这个文件夹去找
app.get('/',function (req,res) {
res.send('hello world')
})
//3.监听端口
app.listen(8006,'127.0.0.1');
5.第三方中间件
const express = require('express');
let bodyParser = require('body-parser');
let app = express();
//配置第三方中间件
//配置
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
必须配置这个body-parser中间件才能使用req。body方法
//配置ejs模板引擎
app.set('view engine','ejs');
//配置模板的位置
app.set('views',__dirname+'/views');
//2.配置路由
app.get('/',function (req,res) {
res.send('hello world')
})
app.get('/login',function (req,res) {
let data = ['haha','xixi'];
res.render('index',{list:data})
res.send('login页面')
})
//配置dologin路由
app.get('/dologin',function (req,res) {
console.log(req.body);
res.send('欢迎');
})
app.listen(3000)
express中间件简单的总结
express框架的简单总结:
1.引入express包 cnpm/npm i express --save
2.实列化 let app = express()
监听端口 app.listen
## 2.中间件
数据处理的中间件:
app.use(express.json())
app.use(express.urlencoded({contended:true}));
静态资源挂载
app.use(express.static('public'));开放静态资源,不需要设置监听路由就能访问静态资源
注意:一般开发情况下,如果静态资源有该文件路由,服务器就不能再监听该路由,如果监听了,以静态资源为准
cookie-parser中间件
app.use(cookieparser()); //允许访问cookie,但是要先下载包cookie-parser
## 监听路由:
app.get()
app.post()
app.all
## resquire对象:
常用方法:
req.body 得到post请求的数据
req.query 得到get的传参
req.cookie得到前端的cookie
req.params 得到路由
## response对象
res.send()返回一个字符串
res.sendFile
res.redirect():重定向
res.rend();渲染模板引擎,返回一个页面,注意res.rend()和res.send()冲突
res.status()设置状态码
res.fresh() 就是查看监听之前有没有监听过这个路由
res.app === app