koa2 get post api restful前端联调
Posted mengfangui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了koa2 get post api restful前端联调相关的知识,希望对你有一定的参考价值。
1、git
https://github.com/MengFangui/koa2-restful-api
2、示例代码
//引入 Koa 服务器
const koa = require(‘koa‘);
const app = new koa();
// 路由配置
const router = require(‘koa-router‘)();
// 解决post方法获取参数问题
const bodyParser = require(‘koa-bodyparser‘);
// 配置中间件
app.use(bodyParser());
// 解决跨域问题
app.use(async (ctx, next) =>
ctx.set(‘Access-Control-Allow-Origin‘, ‘*‘);
ctx.set(‘Access-Control-Allow-Headers‘, ‘*‘);
ctx.set(‘Access-Control-Allow-Methods‘, ‘PUT, POST, GET, DELETE, OPTIONS‘);
ctx.set(‘Cache-Control‘, ‘no-cache‘);
await next();
)
// router.routes作用:启动路由
// allowedMethods作用:当所有路由中间件执行完成之后,若ctx.status为空或者404的时候,丰富response对象的header头.
app.use(router.routes()).use(router.allowedMethods())
// get请求示例
router.get(‘/test‘, async (ctx) =>
// 获取请求
// console.log(ctx.request);
// 获取的是请求参数
// console.log(ctx.query); // aid: ‘123‘ 用的最多的方式 推荐
// console.log(ctx.request.query); // 也可以
// console.log(ctx.querystring); //aid=123&name=zhangsan // 获取的是一个字符串
// 获取url地址
// console.log(ctx.url); // 可以
// console.log(ctx.request.url); //可以
// 响应体
ctx.body =
code: 200,
status: 1,
message: ‘success‘,
data: ctx.query
;
);
//动态路由:在路由里面加入: /:参数
// http://localhost:3000/test-dynamic-routing/888
router.get(‘/test-dynamic-routing/:aid‘, async (ctx, next) =>
// 获取动态路由参数
console.log(ctx.params) // aid:888
ctx.body =
code: 200,
status: 1,
message: ‘success‘,
data: ctx.params
;
)
router.post(‘/testPost‘, async (ctx) =>
// 请求参数
let data = ctx.request.body
ctx.body =
code: 200,
status: 1,
message: ‘success‘,
data
;
);
//监听端口
app.listen(3000, function ()
console.log(‘start in 3000 port ...‘)
);
以上是关于koa2 get post api restful前端联调的主要内容,如果未能解决你的问题,请参考以下文章
Koa2+MongoDB+JWT实战--Restful API最佳实践
typescript Angular HTTP Rest API GET,POST,PUT,DELETE
Livy REST API:GET 请求有效,但 POST 请求失败并显示“需要 401 身份验证”
是否可以对 get 和 post rest api 使用相同的资源名称
WP Rest API 自定义端点在 GET 和 POST 上返回 false
NodeJS - 只有 OPTIONS 请求被发送到 REST API,POST 或 GET 不跟随(Cloudflare)