什么是Express?
Express是基于Node.js平台,快速、开放、极简的Web开发框架。
express 入门
-
创建一个文件夹
-
在cmd命令下,进入当前文件夹
-
初始化npm 环境(否则直接下载模块会报错)
npm init -y
- 安装express模块
npm i express
基于express快速搭建 后台服务
-
引入express模块
-
调用express方法,生成express实例对象
-
设置路由,来响应不同的url地址请求
路由:一个url地址对应一个不同的路由处理程序(不同的url地址有不同的回调函数去响应)
-
监听端口号
const express = require('express');
const app = express();
app.get('/',function(req, res){
res.send('构建一个基本服务器');
});
app.listen(4399);
express 路由
路由(Routing)是由一个 URI(或者叫路径)和一个特定的 HTTP 方法(GET、POST 等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。每一个路由都可以有一个或者多个处理器函数,当匹配到路由时,这个/些函数将被执行
- app 是 express 实例对象
- methods 是请求方法 get | post | put | update | delete |…
- path 就是路径(url定值的 pathname ),必须以’/'开头
- callback 回调函数,路由的处理函数
- req
- res (这里的 req res 就是原生nodejs中的 req res。但比原生中要多一些属性方法,是express加上去的)
- next 是一个方法,调用这个方法会让路由继续匹配下一个能匹配上的
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send('hello world');
});
app.post('/', function (req, res) {
res.send('POST request to the homepage');
});
//app.all() 是一个特殊的路由方法,没有任何 HTTP 方法与其对应,它的作用是对于一个路径上的所有请求加载中间件。
app.all('/secret', function (req, res, next) {
console.log('Accessing the secret section ...');
next();
});
express 响应方法
下表中响应对象(res)的方法向客户端返回响应,终结请求响应的循环。如果在路由句柄中一个方法也不调用,来自客户端的请求会一直挂起。
方法 | 描述 |
---|---|
res.download() | 提示下载文件 |
res.end() | 终结响应处理流程。 |
res.JSON() | 发送一个 JSON 格式的响应 |
res.redirect() | 重定向请求 |
res.render() | 渲染视图模板 |
res.send() | 发送各种类型的响应 |
利用 Express 托管静态文件
通过 Express 内置的 express.static 可以方便地托管静态文件,例如图片、CSS、JavaScript 文件等。
将静态资源文件所在的目录作为参数传递给 express.static 中间件就可以提供静态资源文件的访问了
例如,假设在 views 目录放置了图片、CSS 和 JavaScript 文件,你就可以:
app.use(express.static('views'));
现在,views 目录下面的文件就可以访问了。
http://localhost:4399/images/kitten.jpg
http://localhost:4399/css/style.css
http://localhost:4399/js/app.js
http://localhost:4399/images/bg.png
如果你的静态资源存放在多个目录下面,你可以多次调用 express.static 中间件:
app.use(express.static('views'));
app.use(express.static('lib'));
中间件
定义
什么叫中间件,引用官方的解释就是:
中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。Express 是一个自身功能极简,完全是由路由和中间件构成一个的 web 开发框架:从本质上来说,一个 Express 应用就是在调用各种中间件。
中间件可以做的事情
- 执行任何代码。
- 修改请求和响应对象。
- 终结请求-响应循环。
- 调用堆栈中的下一个中间件。
内置中间件:
express.static 是 Express 唯一内置的中间件。它负责在 Express 应用中托管静态资源