基于koa2框架和mysql数据库的后台接口
笔者最近心血来潮,学完Vue3感觉打遍天下无敌手,想尝试自己写一个后台接口来搭建一个vue3项目,于是我开始学习了Node.js,基于koa2框架和mysql数据库。说实话,刚开始学问题不少,现在就遇到一个接口404的问题,解决方案如下:
首先我连接mysql数据库,接口使用了koa框架,具体代码如下:
const koaBody = require('koa-body');
const Koa = require('koa');
const koaRouter = require('koa-router');
const sql=require('./mysql.js')
const app = new Koa();
const router =new koaRouter();
app.use(router['routes']()).use(router.allowedMethods());//allowedMethods()方法允许post、get等请求,没有用这个方法页面会出现not found
//注册插入数据库路由接口
router.post('/index', koaBody(), async(ctx, next)=> {
ctx.set("Access-Control-Allow-Origin", "*");
var sbody=ctx.request.body;//接收页面传过来的值
var temp=await sql.query("insert into login(usename,password) values(?,?)",[sbody.usename,sbody.password]).then(function(result){
console.log(result);
return result;
},function(error){
return -1;
});
ctx.body=sbody;//传回去页面的值,会在页面中显示。
});
router.post('/login',koaBody(),async(ctx,next)=>{//登录接口
ctx.set("Access-Control-Allow-Origin","*");
var loginbody=ctx.request.body;
var success=false;
var logintemp=await sql.query("select * from login").then(function(result){
for(var i=0;i<result.length;i++){
if(result[i].usename==loginbody.usename&&result[i].password==loginbody.password){
return 1;
success=true;
}
}
if(!success){
return 0;
}
},function(error){
return -1;
});
ctx.body=logintemp;
});
app.listen(3000, ()=>console.log('Koa start at 3000...'));
接口测试用了postman,这个工具使用也介绍一下,下面图中标注的一些地方是要注意的:
感觉koa框架来写接口还是比较方便的,毕竟有很多插件的支持,连接数据库的插件也有所不同,可能不同数据库插件连接数据库方法也有点不同,然后就是koa框架中的路由我弄了很久,经常出现not found,应该是没有使用router.allowedMethods()这个方法,导致post和get的方法不行。