express

Express简介

Express是node的一个第三方的框架,用于处理HTTP请求等功能,其特殊的功能在他的中间件。
Express的核心功能:

  • 可以设置中间件来响应HTTP请求
  • 定义路由可以表示执行不同的HTTP请求
  • 通过模板来传递参数动态渲染HTML页面

Express的安装命令

安装Express到依赖列表中

  1. 第一步:先初始化项目模板
npm init -y
  1. 第二步:安装Express
npm install express -S

以上是安装Express的一种方法,其实还有一种方法就是使用淘宝镜像。

  1. 第一步:安装淘宝镜像:首先要有一个淘宝镜像的包:
npm config set registry 'https://registry.npm.taobao.org/'
  1. 第二步:使用淘宝镜像安装Express
cnpm i express -S

以上命令会将Express框架安装到node_modules目录中。要是使用第一种方法的话后面的-S可以不写,要是用淘宝镜像来安装Express就必须加-S,不然你的Express不会加载到初始化配置文件dependencies

检查Express版本号的命令

npm list express

Express的实际代码如下:

const  express = require("express");
let app = express();
//设置端口
app.listen(5550);
//路由
app.get("/",(req,res)=>{
    res.send("你好,世界");
});

在浏览器中访问http://localhost:5550/,结果如下如所示
在这里插入图片描述

Express的中间件

Express的中间件用通俗易懂的话来介绍就是在路由请求之前可以先设置中间件。相当于你在吃饭之前你叫你先洗手,这是对你有好出的。你设置好的中间件是可以继承的,当然也可以设置多个中间件,这就是中间件的定义。

const express = require("express");
let app = express();
//设置端口
app.listen(5555);
//设置中间件
app.use((req,res,next)=>{
    req.goudan = "123";
    console.log(req.goudan);
    next();//如果你不next的话,就不会执行下面的路由,浏览器就会一直请求
});
app.get("/",(req,res)=>{
    req.goudan = "狗蛋";
    console.log(req.goudan);
    res.send("狗蛋你好啊");
});

课堂小知识:中间件有2个参数,第一个:是路径(不写默认所有路由都可以访问"/"),第二个:就是中间件了

const express = require("express");
let app = express();
app.listen(5550);

app.use("/index",(req,res,next)=>{
    req.goudan = "123";
    console.log(req.goudan);
    next();
});

app.get("/",(req,res)=>{
    req.goudan = "狗蛋";
    console.log(req.goudan);
    res.send("狗蛋你好啊");
});

app.get("/index",(req,res)=>{
    res.send("index的页面");
})

访问localhost://5550/index就可以进入到index的界面了
其实一个路由也是一个中间件,第二个参数也有next:

const express = require("express");
let app = express();
app.listen(5550);

app.use("/index",(req,res,next)=>{
    req.goudan = "123";
    console.log(req.goudan);
    next();
});

app.get("/",(req,res,next)=>{
    req.goudan = "狗蛋";
    console.log(req.goudan);
    console.log(1);
    next();//如果不写next的话就不会执行下面的路由,会一直在请求
});
app.get("/",(req,res)=>{
    req.goudan = "狗蛋";
    console.log(req.goudan);
    console.log(2);
    res.send("狗蛋你好啊");
});

app.get("/index",(req,res)=>{
    res.send("index的页面");
})
注意:中间件必须写在路由的前面,写在路由的后面是没有任何意义的

Express默认中间件

express.urlencoded():把前端请求到的数据以对象的形式解析出来

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="http://localhost:5551" method="post">
    <input type="text" name="user1"><br>
    <input type="text" name="user2"><br>
    <input type="submit">
</form>
</body>
</html>
const express = require("express");
let app = express();
app.listen(5551);
app.use(express.urlencoded());

app.post("/",(req,res)=>{
    console.log(req.body);
    res.send(req.body.user1+req.body.user2);
});

express.static():访问公共资源静态块,就是可以访问公共资源

const express = require("express");
let app = express();
app.listen(5552);
app.use(express.static("file"));//可以访问file目录下的文件
app.get("",(req,res)=>{
    res.send();
});
express.Router():子路由
//这个是index.js的文件
const express = require("express");

let router = express.Router();

router.get("/",(req,res)=>{
    req.afei = "afei";
    res.send("teacher/"+req.afei);
});

router.get("/fengyu",(req,res)=>{
    req.fengyu = "afei";
    res.send("teacher/"+req.fengyu);
});

module.exports = router;
//引用index.js的文件
const express = require("express");

let app = express();

app.listen(6780);
app.use("/index",require("./routers/index"));

express.Router()子路由的好处,就是分模块开发,便于管理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旭陌小生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值