使用Express写接口
1、创建基本的服务器
const express = require('express');
const app = express();
app.listen(80, () => {
console.log('服务启动!');
});
2、创建API路由模块
创建路由模块 apiRouter.js
const express = require('express');
const apiRouter = express.Router();
// some todo
module.exports = apiRouter;
app.js
const apiRouter = require('./apiRouter.js');
app.use('/api', apiRouter);
编写 GET 接口
const express = require('express');
const apiRouter = express.Router();
apiRouter.get('/getList', (req,res) => {
// 获取客户端传过来的查询字符串,发送到服务端的数据
const query = req.query;
// 响应回去
res.send({
status: 0, // 状态,0为成功,1为失败
msg: 'GET请求成功', // 状态描述
data: query, // 响应数据
});
});
module.exports = apiRouter;
编写POST接口
const express = require('express');
const apiRouter = express.Router();
apiRouter.post('/post', (req,res) => {
// 获取客户端通过请求体,发送到服务器的 URL-encoded 数据
const body = req.body;
// 响应回去
res.send({
status: 0, // 状态,0为成功,1为失败
msg: 'GET请求成功', // 状态描述
data: body, // 响应数据
});
});
module.exports = apiRouter;
通过CORS解决跨域
1、跨域简述
浏览器不允许在当前源的情况下访问其他源的数据,也就是违反了浏览器的同源策略
。同源就是协议、域名、端口号
,这三者只要有一个不一样,就会造成跨域。`
2、跨域的解决
1、cors (当前推荐使用)
2、jsonp(有缺陷,只支持get请求)
3、proxy (vue里使用这个方式)
3、使用cors中间件
解决跨域问题
cors是Express的一个第三方中间件,通过安装配置cors中间件,可以很好解决跨域问题。
1、运行 npm install cors
安装中间件
2、使用 const cors = require('cors')
导入中间件
3、在路由之前
调用 app.use(cors())
配置中间件
const userRouter = require('./userrouter.js');
const cors = require('cors');
// 在路由之前调用cors中间件
app.use(cors());
app.use(userRouter());