基本步骤
- 创建基本的服务器
- 创建API路由模块
- 写get接口 / 写post接口
创建基本服务器
const express = require('express')
const app = express()
app.listen(80, function() {
console.log('running at 80')
})
创建API路由模块
const express = require('express')
const apiRouter = express.Router()
module.exports = apiRouter
const apiRouter = require('./apiRouter.js')
app.use('/api', apiRouter)
编写GET接口 / 编写POST接口
get接口
apiRouter.get('/get', (res, req)=> {
const query = req.query
res.snd({
status: 0,
msg: 'GET请求成功',
data: query
})
})
post接口
apiRouter.get('/post', (res, req)=> {
const body= req.body
res.snd({
status: 0,
msg: 'POST请求成功',
data: body
})
})
跨域问题
关于跨域的基础知识和解决方法点击这里可以参考
上面写的GET和POST接口存在很严重的问题就是不支持跨域请求 解决跨域的两种主要方法:
- COPS(主流方法)
- JSONP(只支持GET请求)
下面主要记述CORS解决跨域问题
使用CORS解决跨域问题
我们通过安装和配置中间件的方法可以便捷的解决跨域问题
- 运行
npm install cors 安装中间件 - 使用
const cors = require(‘cors’) 导入中间件 - 在路由之前调用
app.use(cors()) 配置中间件
- 什么是CORS
由一系列HTTP相应头组成,这些http响应头决定浏览器是否阻止前端JS代码跨域获取资源。 (浏览器的同源策略会阻止网页跨域获取资源。但如果接口服务器配置了CORS相关的CORS响应头就可以解除浏览器端的跨域访问限制。)这篇文章里有说到同源策略
CORS注意事项
- CORS主要在服务器端进行配置。客户端浏览器无需做其他额外的配置
- CORS在浏览器中有兼容性
- CORS响应头
指定Access-Control-Allow-Origin字段的值为通配符‘*’ ,表示允许来自任何域的请求
res.setHeader('Access-Control-Allow-Origin','*')
默认情况下,CORS仅支持GET, POST, HEAD请求,如果要用PUT, DELETE请求,需要通过'Access-Control-Allow-Methods' 来指明实际请求所允许使用的http方法
res.setHeader('Access-Control-Allow-Methods','GET, POST, HEAD, DELETE')
res.setHeader('Access-Control-Allow-Methods','*')
|