后端express框架学习
express简介
Express是一个基于Node平台的web应用开发框架,它提供了一系列的强大特性,帮助你创建各种Web应用。Express也是node框架的第三方模块,它的作用是专门用来创建网站应用,因为使用原生js创建网站应用代码比较复杂比较底层,比如实现路由功能需要对请求地址进行解析还有进行各种判断,代码过于繁琐不利于阅读。实现静态资源访问功能还需要使用文件读取模块对文件的内容进行读取,还需要设置响应内容的类型,但这实际上跟网站本身业务逻辑没有什么关系还有接受post请求参数的代码,需要对请求对象添加事件手动拼接请求参数对请求参数的格式进行转化都是比较复杂并且跟业务逻辑没有什么关系。基于原生nodejs实现网站应用比较困难,express框架就诞生了。
express框架特点
1、提供了方便简洁的路由定义方式
2、对获取HTTP请求参数进行了简化处理
3、对模版引擎支持程度高,方便渲染动态HTML页面
4、提供了中间件机制有效控制HTTP请求
5、拥有大量第三方中间件对功能进行扩展
express使用
1、安装express
npm install express
2、基本使用方法
//引入express
const express = require('express');
//创建一个应用
let app = express();
//匹配GET请求路径设置回调函数
app.get('/123', function (req, res) {
res.end('123');
});
//监听端口
app.listen(8888, function () {
console.log('port : 8080');
});
通过访问 localhost:8080/123即可看到输出
如果我们想要匹配所有的请求路径,可以使用通配符 * 号。
//*号匹配所有路径
app.get('*', function (req, res) {
res.end('not found');
});
中间件的概念
express中间件就是处理http请求的函数,用来完成一些特定的操作,比如登陆检查,权限控制等等。
1、一个中间件处理完请求和响应,可以把数据传递给下一个中间件。
2、在回调函数中使用 next(),就可以让请求继续向下传递。
3、通过不同路径,分别执行不同的中间件。
我们可以使用 use() ,在路由数组中添加一个中间件。注意我们设置的路由路径最终会存放在一个数组里,由上到下的把路径加入这个数组中。
app.use(function (req, res, next) {
console.log('匹配全部路径');
//注意这里如果不调用next(),则请求并不会向下传递。
next();
});
app.use('/123', function (req, res, next) {
console.log('use hello');
next();
});
app.get('/123', function (req, res, next) {
console.log('get hello');
next();
});
express与koa框架比较
1、框架体量:Express框架集成了路由、静态文件功能模块,而Koa框架只提供了web服务,所以Koa相对于Express更轻量级;
-
实现功能点:基本的路由、静态文件功能的Web服务
Koa:利用Koa框架实现路由、静态文件、web服务需要额外引入第三方依赖,Koa框架本身只提供了web服务。
Express版本:利用Express框架实现路由、静态文件、web服务,不需要额外引入第三方,Express本身集成
2、 中间件机制:**这两种框架都使用了中间件机制实现web应用功能增强,源码中都是通过middleware数组存储中间件功能函数,同时根据洋葱模型机制实现中间件功能触发;
-
Express版本:Express中间件执行机制也是洋葱模型;但是由于Express框架对HTTP异步请求采用回调方式处理,不会等待Promise执行完成,所以有时候洋葱模型执行中间并不是那么可靠;
Koa版本:Koa中间件执行机制严格按照洋葱模型;由于Koa框架利用async/await语法等待Promise执行完成,如果不采用该语法定义中间件函数,也会出现Express的情况,同时Koa
web路由服务无法访问;
3、 异步处理方式:Express框架采用Callback回调函数的方式处理异步功能,它不会等到Promise执行完成;而Koa2框架采用async/await语法特性处理异步功能,可以通过该语法可以等到Promise执行完成;
4、 报错处理机制:Express对报错处理不太友好,如果控制器(路由函数)中出现错误代码,Express直接抛出报错,无法通过try,catch语法进行拦截处理;Koa框架可以定义报错中间件,对控制器出现的报错进行统一处理拦截;中间件对响应对象的处理:Koa框架能够在中间件中直接修改Response响应对象,而Express框架在中间件中不能修改Response响应对象
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhiacjba
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22