Express框架是什么

Express是一个基于Node平台的web应用开发框架,它提供了一系列的强大特性,帮助你创建各种Web应用,我们可以使用npm install express 命令进行下载。
Express也是node框架的第三方模块,它的作用是专门用来创建网站应用,因为使用原生js创建网站应用代码比较复杂比较底层,比如实现路由功能需要对请求地址进行解析还有进行各种判断,代码过于繁琐不利于阅读。
实现静态资源访问功能还需要使用文件读取模块对文件的内容进行读取,还需要设置响应内容的类型,但这实际上跟网站本身业务逻辑没有什么关系还有接受post请求参数的代码,需要对请求对象添加事件手动拼接请求参数对请求参数的格式进行转化都是比较复杂并且跟业务逻辑没有什么关系。基于原生nodejs实现网站应用比较困难,express框架就诞生了。

Express 框架特性

  • 提供了方便简洁的路由定义方式
    简洁的路由定义方式就是使用route这个第三方模块定义路由的方式,route第三方模块实际上就是express框架当中抽取出来。
  • 对获取HTTP请求参数进行了简化处理 框架提供更加简洁的方式去接受请求参数也就是说使用express框架,不再需要对请求参数 的格式进行转化,框架让我们拿到的直接就是对象类型,不需要对请求对象添加data事件以及then事件。框架内部在接收完请求参数并处理完成以后,将参数作为请求对象的属性让我们直接获取。
  • 模版引擎支持程度高,方便渲染动态HTML页面
    框架虽然没有提供内置的模版引擎,但是对市面上各种模版引擎支持程度是非常高的也就是框架可以非常容易同模版引擎协同工作,方便开发者进行项目开发。
  • 提供了中间件机制有效控制HTTP请求 框架提供了中间键机制能够让我们对请求进行精确地控制,所谓中间件可以简单理解为对请求的拦截。
  • 拥有大量第三方中间件对功能进行扩展
    正是有了中间件这个强大的功能,相当于对外界提供了处理请求的接口。除了官方提供的处理请求的中间件以外,还有大量非官方的中间件,基于框架还有其他的插件可以让我们实现各种功能,就像使用JQuery也有大量的插件一样可以让我们以非常少的代码做出非常强大的功能

原始Node.js 与express框架对比路由

exepress框架 express框架有什么用_exepress框架


左边原生nodejs需要对请求进行解析,还要判断请求方式以及请求地址光是判断代码就够让人眼花缭乱了。

右边Express框架实现的代码,通过get方法和post方法区分了不同的请求方式再通过参数的形式区分请求地址,用express框架写的路由不但清晰而且易读,不管从代码量还是代码的可阅读性上,Express框架实现的代码就是比Node.js 看起来更加的简洁和美观。原始Node.js 与express框架对比获取请求参数

exepress框架 express框架有什么用_中间件_02


使用原生node.js接受请求参数需要对请求地址进行处理,需要添加事件还需要手动去拼接参数,使用框架去接受请求参数只需要获取请求对象下面的属性就可以了,比如get参数用req.query获取,post请求参数用req.body去获取就可以。

// 引入express框架 不用引入http模块里的createServer方法啦
const express = require('express')
// 创建网站服务器
const app = express();
// 监听端口
app.get('/',(req,res) => {
	// send()
	// 1.send()方法内部会检测响应内容的类型
	// 2.send方法会帮我们自动检测HTTP状态码
	// 3.send方法会帮我们设置响应内容的类型以及编码
	res.send('Hello.Express');
})
app.get('/',(req,res) => {
	// send()
	// 1.send()方法内部会检测响应内容的类型
	// 2.send方法会帮我们自动检测HTTP状态码
	// 3.send方法会帮我们设置响应内容的类型以及编码
	res.send('Hello.Express');
})
app.get('/list', (req,res) =>{
    res.send({name:'张三', age:20})
})
app.listen(3000);
console.log('网站服务器启动成功');

exepress框架 express框架有什么用_Express_03

exepress框架 express框架有什么用_Express_04


exepress框架 express框架有什么用_中间件_05


exepress框架 express框架有什么用_Express_06