创建基本的服务器
var express = require('express') // 导入express
const app = express() // 创建服务器实例
// 配置解析表单数据的中间件
app.use(express.urlencoded({extended: false}))
// 导入路由模块
const apiRouter = require('./apiRouter.js')
app.use('./api', apiRouter)
app.listen(80, function() {
console.log('指定了端口号并启动了服务器~')
})
创建API路由模块
// apiRouter.js
const express = require('express')
const apiRouter = express.Router() // 路由实例对象
apiRouter.get('./get', (req, res) => {
// 调用req.query获取客户端通过查询字符串,发送到服务器的数据
const query = req.query
// 调用res.send()方法,向客户端响应处理的结果
res.send({
status: 0, // 0表示处理成功, 1表示处理失败
msg: 'get请求成功', // 状态的描述
data: query // 需要响应给客户端的数据
})
})
module.exports = apiRouter
-------------------------------------
// app.js
// const apiRouter = require('./apiRouter.js')
// app.use('./api', apiRouter)
编写get接口
apiRouter.get('./get', (req, res) => {
// 调用req.query获取客户端通过查询字符串,发送到服务器的数据
const query = req.query
// 调用res.send()方法,向客户端响应处理的结果
res.send({
status: 0, // 0表示处理成功, 1表示处理失败
msg: 'get请求成功', // 状态的描述
data: query // 需要响应给客户端的数据
})
})
编写post接口
apiRouter.post('./post', (req, res) => {
// 获取客户端通过请求体,发送到服务器的URL-encoded数据
// 如果要获取URL-encoded格式的请求体数据,必须配置中间件app.use(express.urlencoded({extended: false}))
const body = req.body
// 调用res.send()方法,向客户端响应处理的结果
res.send({
status: 0, // 0表示处理成功, 1表示处理失败
msg: 'get请求成功', // 状态的描述
data: body // 需要响应给客户端的数据
})
})
出现跨域
cors是由一系列http响应头组成,这些http响应头决定浏览器是否阻止前端js代码跨域获取资源。
解决跨域
如果接口服务器配置了cors相关的http响应头,就可以解决浏览器端的跨域访问限制。使用cors中间件解决跨域问题,cors是express的一个第三方中间件。
分三步:
- 运行npm install cors 安装中间件
- 使用const cors = require(‘cors’) 导入中间件
- 在路由之前调用app.use(cors()) 配置中间件