使用express 和js开发一个博客系统(二)

在这里插入图片描述

express 创建服务器

首先,在你的项目文件夹 expressDemo1 中初始化项目并进入该项目:

$ npm init -y
$ cd expressDemo1

接下来,通过以下命令在本地安装 Express:

$ npm i express -D

在终端中输入以下命令启动项目:

$ node app.js

在浏览器中输入 localhost:3000 就会发起一个 GET 请求,并且能够看到服务器返回的数据。

路由和中间件

Express 框架完全由路由和中间件构成。从本质上讲,一个 Express 应用程序就是为了监听不同的路径并调用各种中间件。

const express = require('express');
const app = express();

// 当客户端发起 GET 请求时,如果请求的路径是 '/',则返回 'Hello World!哈哈' 字符串
app.get('/', (req, res) => {
  res.send('Hello World!哈哈');
});

// 启动服务器,我可以通过 IP 地址和端口号访问这台服务器,例如:127.0.0.1:3000 或者 localhost:3000
app.listen(3000, () => {
  console.log('Example app listening on port 3000!');
});

中间件本质上就是一个函数,也可以称之为插件。在 Express 中我们更习惯称之为中间件。

路由

路由用于处理前端不同的请求,并返回不同的数据,这就是所谓的后端路由。例如,如果 /users/login 接口用于登录,/users/reg 接口用于注册。

通过监听不同的路径执行不同的函数来处理不同的请求。这些路由通常在 app 上使用,我们也称之为应用级别的路由。

通过路由挂载中间件:

app.use(中间件监听的路径, 中间件函数);

use 函数可以设置两个参数:

  • 第一个参数是设置的路径,如果不传参数,默认是 *,匹配任何路径。
  • 第二个参数是回调函数,如果路径匹配成功,就会执行该函数。通常情况下,我们使用第三方封装的函数作为中间件。

路由的匹配顺序是从上到下的,如果已经匹配到了某个路径,后续路径就不会再被执行了。

因此,我们现在不使用 *,后面会介绍如何避免这种情况。

HTTP 请求的方式有很多种,use 函数可以监听到所有方式的请求。

除了 use,还可以专门监听某种请求:

  • app.get 监听 GET 请求
  • app.post 监听 POST 请求
  • app.put 监听 PUT 请求
  • app.patch 监听 PATCH 请求
  • app.delete 监听 DELETE 请求

通过 app.use (path, fn),当前端发起请求的路径匹配到 path 时,将执行后面的函数 fn

  • path 称之为路径
  • fn 称之为中间件函数

通过 app.use,我们可以让不同的路径(接口地址)执行不同的函数,这就是所谓的路由(注意 use 可以监听不同的请求方式,如 GET、POST 等)。

例如:

app.use('*', fn1);    // 和下方等效 app.use(fn1);
app.use('/about-me', fn1);
app.use('/login', fn2);

中间件

中间件本质上就是一个函数。

中间件函数中有三个形参:

  1. req 是请求对象
  2. res 是服务器的响应对象
  3. next 一旦调用,中间件会将请求交给下一个中间件去处理。如果不调用 next,请求处理将在此结束,不会传递给其他中间件处理。

例如,在 test.js 文件中使用 app.js 中的中间件 test

启动项目后,访问 localhost:3000/atest 中间件会被调用两次。访问 localhost:3000 则只会调用一次 test 中间件。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值