创建 API 路由模块

文章目录
什么是接口
API (,应用程序编程接口 ) 是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节 。API除了有应用“应用程序接口”的意思外,还特指 API的说明文档,也称为帮助文档 。
创建 API 路由模块
创建 API 路由模块的方法十分简单,和之前创建自定义模块的方法几乎一样 。
const express = require('express')const router = express.Router()module.exports = router
然后我们在 test.js 中注册路由:
const express = require('express')const apiRouter = require('./apiRouter')const app = express()app.use('/api',apiRouter)app.listen(80,()=>{console.log('Express server running at http://127.0.0.1')})
这样我们就可以直接在 API 路由模块中写相应的路由,然后在 test.js 中调用即可 。
【创建 API 路由模块】编写 GET 接口
我们直接在 API 路由模块中编写路由代码 。
// 定义 GET 接口router.get('/get', (req, res) => {// 调用 res.send() 方法,向客户端响应处理的结果res.send({status: 0,// 0 表示处理成功,1 表示处理失败msg: 'GET 请求成功!', // 状态的描述data: req.query// 通过 req.query 来获取客户端通过查询字符串发送到服务器的数据})})

创建 API 路由模块

文章插图
编写 POST 接口
和上面一样,我们直接在 API 接口中编写路由代码
//定义 POST 接口router.post('/post', (req, res) => {// 调用 res.send() 方法,向客户端响应结果res.send({status:0,msg: 'POST 请求成功',data:req.body // 通过 req.body 获取请求体包含的 url-encoded 格式的数据})})
然后还需要在 test.js 中配置一段代码
//配置解析表单数据的中间件app.use(express.urlencoded({extended:false}))
完整代码
.js
const express = require('express')const router = express.Router()// 定义 GET 接口router.get('/get', (req, res) => {// 调用 res.send() 方法,向客户端响应处理的结果res.send({status: 0,// 0 表示处理成功,1 表示处理失败msg: 'GET 请求成功!', // 状态的描述data: req.query// 通过 req.query 来获取客户端通过查询字符串发送到服务器的数据})})//定义 POST 接口router.post('/post', (req, res) => {// 调用 res.send() 方法,向客户端响应结果res.send({status:0,msg: 'POST 请求成功',data:req.body // 通过 req.body 获取请求体包含的 url-encoded 格式的数据})})//向外暴露module.exports = router
test.js
const express = require('express')const router = require('./apiRouter')const app = express()//配置解析表单数据的中间件app.use(express.urlencoded({extended: false}))app.use('/api', router)app.listen(80, () => {console.log('Express server running at http://127.0.0.1')})
CORS 跨域资源共享
刚刚编写的 GET 和 POST 接口,存在一个很严重的问题:不支持跨域请求 。
创建 API 路由模块

文章插图
先来简单介绍一下跨域请求:当前发起请求的域与该请求指向的资源所在的域不一样 。这里的域指的是这样的一个概念:我们认为若协议 +域名 + 端口号均相同,那么就是同域 。