express

122 阅读3分钟

09.express

1.简介

基于 Node.js 平台,快速、开放、极简的 web 开发框架

//1.引入express包
const express = require("express");

//2.引入的express是一个函数,需要调用express函数,才能得到一个应用对象app,所有搭建服务的方法属性都是app对象上,app就是express的实例
const app = express();

//3.书写路由(接口)

//4.启动服务(要告诉端口号,主机地址默认已经开启了127.0.0.1 本地ip192.168.17.62)
app.listen(3000, err => {
    if (err) {
        console.log("服务器启动失败", err);
        return
    }
    console.log("服务器启动成功 请访问 http://192.168.17.62:3000");
})

2.基本路由

express路由是由URI和特定的HTTP方法组成的,涉及到应用如何响应客服端对某个网站节点的访问。

2.1路由定义

路由定义采用以下结构:app.METHOD(PATH, HANDLER)

​ ● app是 的一个实例express。 ​ ● METHOD是一个HTTP 请求方法,小写。 ​ ● PATH 是服务器上的路径。 ​ ● HANDLER 是路由匹配时执行的函数。

2.2 路由器express.Router

使用express.Router类创建模块化的、可安装的路由处理程序。一个Router实例是一个完整的中间件和路由系统;因此,它通常被称为“迷你应用程序”。

//express的使用

//1.导入express

const express = require("express");

//2.调用express方法创建一个应用对象

const app = express();


//3.定义接口(后端接口)

app.get("/show", (req, res) => {

 res.end("hello express");

});

app.get("/", (req, res) => {

 res.end("<h1>hello world</h1>");                           

});

app.get("/login", (req, res) => {

 res.end("hello login");

});


//4.监听端口和启动服务

app.listen(3000, () => {

 console.log("服务器启动成功,请访问http://127.0.0.1:3000");

});

3.静态文件

通过Express内置的express.static可以方便地托管静态文件,例如图片、CSS、JavaScript

//例如,通过如下代码就可以将 public 目录下的图片、CSS 文件、JavaScript 文件对外开放访问了:
app.use(express.static(path.resolve(__dirname, 'public')))

//现在,你就可以访问 public 目录中的所有文件了:
http://localhost:3000/images/kitten.jpg
http://localhost:3000/css/style.css
http://localhost:3000/js/app.js
http://localhost:3000/images/bg.png
http://localhost:3000/hello.html

4.中间件

4.1什么是中间件

  • Express 是一个自身功能极简,完全有路由和中间件构成的web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。
  • 中间件(Middleware)是一个函数,它可以访问req,res和一个next函数用来进行下一步操作。
  • 如果当前中间件函数没有结束请求-响应循环,它必须调用next()将控制权传递给下一个中间件函数。否则,请求将被挂起

作用:

​ 1.执行任意代码 ​ 2.修改req和res对象 ​ 3.返回响应 ​ 4.调用下一个中间件或路由

4.2 中间件分类

  • 应用级中间件 使用函数将应用级中间件绑定到app对象的一个实例上,app.use() app.get()....

  • 路由器级中间件 路由器级中间件的工作方式与应用级中间件相同,只是它绑定到express.Router().

  • 错误处理中间件 在程序执行的过程中,不可避免的会出现一些无法预料的错误,比如文件读取失败,数据库连接失败。 错误处理中间件是一个集中处理错误的地方。 以与其他中间件函数相同的方式定义错误处理中间件函数,除了使用四个参数而不是三个参数,特别是使用签名(err, req, res, next)):

  • 内置中间件

    • express.static提供静态资产,例如 HTML 文件、图像等。
    • express.json使用 JSON 负载解析传入请求。注意:适用于 Express 4.16.0+
    • express.urlencoded使用 URL 编码的有效负载解析传入请求。 注意:适用于 Express 4.16.0
  • 第三方中间件 使用第三方中间件向 Express 应用程序添加功能。

//cookie中间件案例
var express = require('express')
var app = express()
var cookieParser = require('cookie-parser')

// load the cookie-parsing middleware
app.use(cookieParser())