什么是Express?

Express是基于nodejs平台,快速、开放、极简的web开发框架

http内置模块用起来复杂,开发效率低。Express是基于http模块进一步封装出来的,就如同浏览器中WebAPI和jQuery的关系。

使用Express可以方便快速地创建Web网站的服务器或API接口的服务器

中文文档:https://expressjs.com.cn

安装Express

在项目的根目录中运行以下命令来安装Express

npm i express

创建一个基本的web服务器

// 1.导入Express
const express = require('express')
// 2. 创建web服务器
const app = express()
// 3.调用listen监听80端口,启动后调用回调函数输出信息
app.listen(80, () => {
    console.log('express server running at http://127.0.0.1')
})

app.get():监听GET请求

通过app.get()方法,可以监听客户端的GET请求

// 参数1:客户端请求的URL地址
// 参数2:请求对应的处理函数
//        req:请求对象(包含了与请求相关的属性与方法)
//        res:响应对象(包含了与响应相关的属性与方法)
app.get('请求url', (req, res) => {/*处理函数*/})

app.post():监听POST请求

通过app.post()方法,可以监听客户端的POST请求

// 参数1:客户端请求的URL地址
// 参数2:请求对应的处理函数
//        req:请求对象(包含了与请求相关的属性与方法)
//        res:响应对象(包含了与响应相关的属性与方法)
app.post('请求url', (req, res) => {/*处理函数*/})

res.send():把内容响应给客户端

通过res.send()方法,可以把处理好的内容发送给客户端

app.get('/user', (req, res) => {
    // 向客户端发送JSON对象
    res.send({
        name:'25',
        age:'20',
        gender:'男'
    })
})

app.get('/user', (req, res) => {
    // 调用res.send()方法向客户端响应一个文本字符串
    res.send('请求成功!')
})

利用VSCode中的REST Client插件来测试接口

安装

在VSCode的拓展窗口进行搜索并下载即可

使用

在项目目录下,创建一个 .http后缀的文件来进行测试,这里取名为test.http

使用方法如下

get/post url 请求头类型 内容

如:

get http://localhost:3000/api/users
post http://localhost:3000/api/register Content-Type: application/json{"username": "user8","password": "123456"}

image-20220531155801475

点击Send Request即可发起请求

也可以将链接与请求头写成变量的形式

@url = http://localhost:3000/api

@json=Content-Type: application/json

例如:

@url = http://localhost:3000/api

@json=Content-Type: application/json

###查询所有用户
get {{url}}/users

###注册
post {{url}}/register
{{json}}

{
    "username": "user1",
    "password": "123456"
}

###登录
post {{url}}/login
{{json}}

{
    "username": "user1",
    "password": "123456"
}

### 获取个人信息
get {{url}}/profile
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYyOTBiZTBlZGEzYjlkNjAwMzY4M2UwNyIsImlhdCI6MTY1MzY1MzAzNX0.-Rk_hjMJJpyQhXh4S_ZvKS_mMxc-L3wIoR-bvJRTASc

req.query获取URL中携带的查询参数

通过req.query对象,可以访问到客户端通过查询字符串的形式发送到服务器的参数:

app.get('/', (req, res) => {
    // req.query 默认是一个空对象
    // 客户端使用 ?name=zs&age=20 这种查询字符串形式,发送到服务器的参数
    // 可以通过req.query访问到,如
    // req.query.name req.query.age
    console.log(req.query)
    res.send(req.query)
})

结果会返回一个json对象

{
    "name":"ZS",
    "age":"20"
}

req.params:获取URL中的动态参数

通过req.params对象,可以方位到URL中,通过:匹配到的动态参数:

app.get('/user/:id', (req, res) => {
    // 注意:   ↑这里的:id是一个动态的参数
    // 和req.query一样,req.params默认是一个空对象
    console.log(req.params)
    res.send(req.params)
})

结果也是返回一个json对象

{
    "id":"1"
}

express.static():托管静态资源

托管单个静态资源目录

通过express.static(),我们可以非常方便地创建一个静态资源服务器。

例如,通过如下代码就可以将public目录下的图片、css文件、JavaScript文件对外开放访问了:

app.use(express.static('public'))

现在,你就可以访问public目录中的所有文件了:http://localhost:3000/*

托管多个静态资源目录

我们也可以同时托管多个静态资源目录:

app.use(express.static('public'))
app.use(express.static('file'))

访问静态资源目录时,会根据添加顺序查找所需的文件

挂载路径前缀

如果希望在托管的静态资源之前挂在路径前缀,可以使用如下方式托管静态资源:

app.use('/public', express.static('public'))

现在托管的资源路径为:http://localhost:3000/public/*

使用nodemon来实现保存代码时自动重启

nodemon可以监听项目文件的变动,当代码被修改时,nodemon会自动帮我们重启项目,极大方便了开发和调试

nodemon地址:https://www.npmjs.com/package/nodemon

安装

npm install -g nodemon

不加-g默认为当前用户安装,-g为global,全局安装

使用

传统运行代码为node app.js,安装nodemon后,我们可以用nodemon app.js来执行

我们也可以在node项目文件下将package.json中,start项的node改为nodemon,以后调试都可以从这里进入

image-20220531172307245

最后修改:2022 年 08 月 25 日
如果觉得我的文章对你有用,能不能v我50参加疯狂星期四