Express框架简介

Express介绍

什么是Express

  1. 基于Node.js开发的web开发框架,是一个Node.js模块
  2. express提供一系列强大的特性,帮助你创建各种web和移动设备应用

为什么要使用Express

  1. 为了让我们基于Node.js开发web更高效

Express官方网站

  1. Express官网
  2. Express中文官网

Express特点

  1. 实现了路由功能
  2. 中间件功能
  3. 对req和res对象的扩展
  4. 可以集成其他模板引擎

Express基本使用

安装

  1. npm搜索、安装,按照文档一步一步进行
  • 创建package.js文件
  • 安装express模块,npm install --save

演示hello world案例

var express = new Express();
var app = express(); 
// get方式请求
app.get('/index',function (req,res){
	res.end('index');
});
app.listen(9090,function (){
	console.log('http://localhost:9090');
});

res.end和res.send的区别

  1. res.end的参数是一个字符串,res.send的参数是任意类型的值
  2. res.end不会自动发送更多的响应报文头内容,res.send会发送更多的响应报文头内容,所以不会乱码

app.use()

  1. 在进行路由匹配时什么请求方法都可以
  2. 只匹配路径中的一部分,不严格匹配路径

app.all()

  1. 不区分请求方法
  2. 路径完全匹配

res.redirect(status,path)

作用:重定向
参数:status:状态码;path:文件路径

res.sendFile(filepath[,option],callbak)

作用:向客户端发送文件‘
参数:filepath文件路径;callback:回调函数

res.status(status)

作用:设置状态码
参数:status:要设置的状态码

res.status(404).end("文件不存在");

获取get请求的参数

app.get('/content',function(req,res){
	console.log(req.query); // 获取get请求中路径的参数 
	res.end('content');
})

获取get请求的参数有两种形式req.params和req.query,req.params获取的是通过/content/id/43这种形式传递的参数
req.query获取的是通过/content?id=43这种形式传递的参数

获取post请求的参数

app.use(express.urlencoded({extended:true}));
app.post('/login',function(req,res){
	console.log(req.body);
	res.end('/login');
});

在获取post请求的参数之前需要使用express.urlencoded方法,该方法将通过x-www-formdata-urlencoded传递的请求体中的参数解析成一个对象命名为body,并挂载到request对象中。

express.urlencoded方法一个对象作为配置对象,对象中的属性为配置项

  • extended 该属性为布尔值,如果为false,则使用querystring模块解析,如果为true使用qs模块解析
  • inflate 该属性为布尔值,如果为true,则允许解析压缩的请求体,如果为false则不允许
  • limit 限制请求体的数据大小
  • parameterlimit 该属性为数值,控制传递参数的数量
  • type 该属性为字符串,控制要解析的数据的类型,类似content-type
  • verify 该属性是一个函数,如果给一个函数,该函数会接受req,res,buf,encoding四个参数

静态资源托管

const path = require('path');
app.use('/public',express.static(path.join(__dirname,'public')));

使用app.use第一个参数,需要监听的请求的地址,含有/public的地址会由express.static(path.join(__dirname,‘public’)) 所生成的函数代理,响应静态资源

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端御书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值