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.post('/upload',multiparty(),async ctx=>{
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
}
})
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='错误'
}
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()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探