什么是Express?
Express是基于nodejs平台,快速、开放、极简的web开发框架
http内置模块用起来复杂,开发效率低。Express是基于http模块进一步封装出来的,就如同浏览器中WebAPI和jQuery的关系。
使用Express可以方便快速地创建Web网站的服务器或API接口的服务器
安装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"}
点击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,以后调试都可以从这里进入