koa2+mysql

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值