基于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的方法不行。

posted @ 2022-08-19 18:01  土小狗  阅读(372)  评论(0编辑  收藏  举报