express的概念

express是基于NodeJS平台,快速、开放、极简的Web开发框架

express的安装

  1. 首先建一个文件夹
  2. 然后在这个文件夹中进行使用npm init 命令初始化一个package.json文件
  3. 然后使用命令:cnpm install express --save安装express

express的使用

  • 新建一个index.js文件
  1. 引入express依赖:const express=require(“express”);
  2. 创建express实例以及创建服务器
  • const app=express()
  1. 绑定端口号
  • app.listen(3000,()=>console.log(“连接成功”));
//引入express依赖
const express = require('express')
//创建express实例以及创建服务器
const app = express();

//当访问根路径时,使用res.send()发送一条信息
app.get("/",(req,res)=>{
    res.send("Hello World");
})
//绑定端口号
app.listen(3000, () => console.log('Example app listening on port 3000!'))

express中的中间件

express允许我们使用多个中间件,必须要通过next来进行通知,通知下一个中间件的使用。

中间件的概念
  • 请求(req)和回复(res)之间的一个应用
使用中间件
  • app.use():使用中间件
  • 参数1:路径,选填
  • 参数2:中间件,一个函数
  • 这个函数有3个形参
  • req:请求
  • res:回复
  • next:
  • next
中间件的分类
  1. 内置中间件
  • 将用户通过get请求传递到服务端的数据经过处理挂载到req.query身上
  1. 自定义中间件
  2. 第三方中间件
  • 使用require引入body-parser
  • body-parser:将用户通过post请求传递到服务端的数据经过处理挂载到req.body身上
  1. 路由中间件
  2. 报错中间件
路由中间件
  • 创建路由
const express=require("express");
const router=express.Router();
  • 使用路由
  • var indexRouter = require(’./routes/index’);
    app.use("/",indexRouter);//当访问根路径时寻找indexRouter路由

express中的request属性

  1. req.body:post请求的参数挂载在req.body身上
  • 需要引入body-parser
  1. req.query:get请求的参数挂载req.query身上
  2. req.cookies:cookie信息挂载在req.cookies身上,如果没有cookie默认为空
  • 需要引入cookie-parser
  1. req.params:映射路由的的参数
  • 例如有一个路由:/user/:name,可以通过req.params.name获取到这个name,如果没有默认为空
  1. req.path:包含request url的一部分
  2. req.protocol:包含request protocol字符串
  3. req.signedCookies:
  • 在使用cookie解析器中间件时,此属性包含请求发送的已签名cookie、未签名的已准备使用的已签名cookie。已签名的cookie驻留在不同的对象中,以显示开发人员的意图;否则,可能对req进行恶意攻击。cookie值(很容易被欺骗)。注意,对cookie进行签名并不会使其“隐藏”或加密;但只是防止篡改(因为用于签名的秘密是私有的)

express中的request的方法

  1. req.get():返回指定的HTTP请求头字段
  2. req.param():返回当前参数的值

express中的response的方法

  1. res.end():用于在没有任何数据的情况下快速结束响应
  2. res.get():返回指定HTTP响应头
  • res.get(“Content-Type”);//text/plain
  1. res.json():发送一个json格式的响应
  2. res.render():在服务端渲染一个页面,并把渲染好的页面发送给客户端
  • 参数1:是渲染的页面的文件名
  • 参数2:是一个对象,里面是需要渲染的数据
  • 服务端渲染的不是HTML文件而是ejs文件6
  1. res.send():发送HTTP响应
  • 参数可以是一个Buffer对象,也可以是一个字符串,也可以是一个数组
  1. res.set():设置HTTP响应头
  • res.set(“content-type”,“text/plain”)
  1. res.status():设置HTTP响应状态
  2. res.type():Sets the Content-Type HTTP header
  • res.type(“html”)
  • res.type(“json”)

express生成器

,命令:express -e