koa2+mysql
1.安装依赖
1.npm i koa koa-bodyparser koa-logger koa-router mysql
2.新建app.js
const Koa = require('koa')
const logger = require('koa-logger')
const bodyParser = require('koa-bodyparser');
const homeRouter = require('./src/router/index')
const app = new Koa()
app.use(logger())
app.use(bodyParser());
app.use(homeRouter.routes())
homeRouter.allowedMethods()
app.listen(9999,()=>{
console.log('server is running on http://127.0.0.1:9999')
})
3.新建src/db/index.js
const mysql = require('mysql');
let pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'root',
database: 'test'
});
function query(sql) {
return new Promise((resolve, reject) => {
pool.getConnection(function (err, connection) {
connection.query(sql, function (err, result) {
if (err) {
reject(err)
} else {
resolve(result)
}
connection.release();
});
});
})
}
exports.query = query;
4.新建src/router/index.js
const Router = require('koa-router')
const router = Router()
router.get("/",async(ctx)=>{
ctx.body='欢迎来到我的首页'
})
module.exports=router
5.其他
router.prefix("/api/test") //接口前缀
//get请求 参数在ctx.query 或者 ctx.params
router.get("/Query", async (ctx) => {
let { page = 1, limit = 10, logTypeId = 0 } = ctx.query
let sql
if (logTypeId != 0) {
sql = `select * from sys_log where logtype_id='${logTypeId}' limit ${(page - 1) * limit},${limit}`
}else{
sql = `select * from sys_log limit ${(page - 1) * limit},${limit}`
}
let data = await db.query(sql)
ctx.body = {
Code: 200,
Data: data
}
})
//post请求 参数在ctx.request.body
router.post("/Login", async (ctx) => {
const { account, pwd } = ctx.request.body
if (account == '' || pwd == '') {
ctx.body = {
Code: 400,
Msg: "请填写账号密码",
Timestamp: Date.now(),
}
} else {
let sql = `select * from sys_user where code='${account}'and pwd='${pwd}'`
let data = await db.query(sql)
if (data.length != 0) {
ctx.body = {
Code: 200,
Msg: "",
Timestamp: Date.now(),
Total: 0,
Data: {
Token: "123",
UserId: data[0].id,
UserName: data[0].name,
ProfilePhoto: ""
}
}
} else {
ctx.body = {
Code: 401,
Msg: "账号或密码错误",
Timestamp: Date.now(),
}
}
}
})
6.注意!
每次新建的接口 记得在app.js中require和use
例如:
const testRouter = require('./src/router/test')
app.use(testRouter.routes())
testRouter.allowedMethods()