ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

koa test2

2022-03-27 20:31:27  阅读:178  来源: 互联网

标签:body test2 const koa ctx user query data


async function run(){
    const koa = require('koa')
    const Router = require('koa-router')
    const Static = require('koa-static-cache')
    const mysql=require('mysql2/promise')
    const bodyparser=require('koa-bodyparser')
    const koaBody=require('koa-body')
    const multiparty=require('koa2-multiparty')
    const path=require('path')
    const fs=require('fs')

    const app = new koa()
    const router = new Router()
    app.use(async (ctx, next)=> {
        ctx.set('Access-Control-Allow-Origin', '*');
        ctx.set('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
        ctx.set('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
        if (ctx.method == 'OPTIONS') {
          ctx.body = 200;
        } else {
          await next();
        }
      });
    app.use(bodyparser())
//文件上传
    app.use(koaBody({
        multiparty:true,
        encoding:'gzip',
        formidable:{
            maxFieldsSize:20*1024*1024,//设置文件上传最大大小
        },
        keepExtensions:true //保存后缀
    }))


    app.use(
        Static('./static'), {
        prefix: '/static',
        gzip: true
    }
    )
    //连接数据库
    const connection=await mysql.createConnection({
        host:"127.0.0.1",
        user:"uniapp",
        password:'123456',
        database:'uniapp'
    })

    // router.get('/test',async ctx=>{
    //     // ctx.body='hello'
    //     let [data]=await connection.query("SELECT * FROM videos")
    //     ctx.body=data
    // })
    //文件上传接口
    router.post('/upload',multiparty(),async ctx=>{
        //获取formdata中的数据
        const {name,type}=ctx.req.body
        //文件名及文件路径
        const file=ctx.req.files.file
        const path=ctx.req.files.file.path

        //创建文件的输入流
        const fileReader=fs.createReadStream(path)
        //定义文件存储路径
        const fileDir=`${__dirname}/static/${type}`
        const filepath=`${fileDir}/${name}`
        //创建文件输出流
        const fileWrite=fs.createWriteStream(filepath)
        //写入文件数据
        fileReader.pipe(fileWrite)
        ctx.body={
            code:1,
            data:'上传成功'
        }
    })

    router.get('/video',async ctx=>{
        let [data]=await connection.query("SELECT * FROM videos LIMIT 0,3")
        ctx.body={
            code:1,
            data
        }
    })

    //通过id查询用户信息接口
    router.get('/user',async ctx=>{
        let [data]=await connection.query("SELECT * FROM user WHERE id=1")
        ctx.body={
            code:1,
            data
        }
    })

    //修改用户信息接口
    router.post('/user',async ctx=>{
        const {data,columnName}=ctx.request.body
         let query=""
        switch (columnName){
              case userName:query="UPDATE user SET userName =? WHERE id=1";
              break;
              case userId:query="UPDATE user SET userId =? WHERE id=1";
              break;
              case redirect:query="UPDATE user SET redirect =? WHERE id=1";
              break;
              case school:query="UPDATE user SET school =? WHERE id=1";
              break;
              case sex:query="UPDATE user SET sex =? WHERE id=1";
              break;
              case birthday:query="UPDATE user SET birthday =? WHERE id=1";
              break;
              case city :query="UPDATE user SET city =? WHERE id=1";
              break;
              default:
                  ctx.body='错误'
        }
        // let query="UPDATE user SET userName =? WHERE id=1"
        value=[data]
        let [lr]=await connection.query(query,value)
        if(lr.affectedRows>0){
            ctx.body={
                code:1,
                data:'成功'
            }
        }else{
            ctx.body={
                code:0,
                data:'失败'
            }
        }
    })
    app.use(router.routes())
    app.listen(8080)
}

run()

标签:body,test2,const,koa,ctx,user,query,data
来源: https://www.cnblogs.com/7c89/p/16064234.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有