let koa = require("koa"); // let app=new koa() // const websockify = require("koa-websocket"); const app = new koa(); let bodyparser = require("koa-bodyparser"); let json = require("koa-json"); let router = require("koa-router")(); //实例化new路由 let cors = require("koa2-cors"); // let verifToken = require("./token.js"); let static = require("koa-static"); const path = require("path"); let multer = require("koa-multer"); let fs = require("fs"); // 配置静态资源 const staticPath = "./public"; app.use(static(path.join(__dirname, staticPath))); app.use(bodyparser()); app.use(json()); app.use(cors()); // 设置文件存储位置 let storage = multer.diskStorage({ //设置文件储存位置 destination: function (req, file, cb) { let date = new Date(); let year = date.getFullYear(); let month = date.getMonth() + 1; let day = date.getDate(); let dir = "./public/uploads/" + year + month + day; if (!fs.existsSync(dir)) { fs.mkdirSync(dir, { recursive: true, }); } cb(null, dir); }, filename: function (req, file, cb) { // 设置上传文件名称 let fileName = file.fieldname + "-" + Date.now() + path.extname(file.originalname); cb(null, fileName); }, }); // 创建multer实例并配置存储引擎 const upload = multer({ storage: storage }); // 上传图片接口 router.post("/img", upload.single("file"), async (ctx) => { // console.log(ctx.req.file); if (!ctx.req.file) { // 如果没有上传文件 ctx.status = 400; // 设置响应状态码为400,表示请求错误 ctx.body = "请选择要上传的文件"; // 返回给客户端的提示信息 return; } // 检查文件大小 const fileSize = ctx.req.file.size; // console.log(fileSize); if (fileSize > 5 * 1024 * 1024) { // 如果文件大小超过限制 ctx.status = 400; // 设置响应状态码为400,表示请求错误 ctx.body = { // 返回给客户端的提示信息 code:400, msg:"文件大小超过限制" } // 删除超过限制的文件 // fs.unlinkSync(ctx.req.file.path); fs.unlink(ctx.req.file.path, (err) => { if (err) { console.error('文件删除失败', err); } else { console.log('文件删除成功'); } }); return; } let path = ctx.req.file.path; path = ctx.origin + "" + path.replace("public", ""); path = path.replace(/\\/g, "/"); console.log(path); ctx.body = path; }); app.use(router.routes()).use(router.allowedMethods()); // 启动 Koa 应用程序 app.listen(7006, () => { console.log("Server is running on port 7006"); });