1.post请求
post请求要获取参数需要装 npm install koa-bodyparser --save-dev
let bodyParser = require('koa-bodyparser');
app.use(bodyParser());//要在使用路由前用,不然post请求获取不到参数
注意
app.use(bodyParser())一定要放在app.use(router.routes())的前面,不然无法从tx.request.body拿到post的参数
2.get或post请求时,偶尔返回Not Found
koa的执行机制,当处理请求的时候,如果函数执行完毕之前你没有通过ctx.response.body返回信息,不论你执行的结果是什么,他都会给你返回一个404状态码的not found信息,在浏览器中显示的结果为访问请求404,然后有一个not found字符串返回。通过await可以拦截事件的执行,保证操作完成后再去返回你想返回的信息,这样就可以解决not found的问题了
exports.getProjectList = async(ctx, next) => {
let conditions = {};
let responseData = null;
try {
let result = await Project.find(conditions);
responseData = result || [];
tx.response.body = responseData;
} catch {
console.error('Error:' + error);
}
//不能写成下面的形式,不然有时候会返回not found
// await Project.find(conditions, (error, result) => {
// if (error) {
// console.error('Error:' + error);
// } else {
// responseData = result || [];
// ctx.response.body = responseData;
// }
// });
};