koa 删除服务器文件,koa2 快速保存文件的服务器

import * as Koa from "koa";

import* as fs from "fs";

import* as path from "path";

const app= newKoa();

app.use(async ctx=>{//console.log(ctx.url);

//console.log(ctx.method);

//let postData = await parsePostData(ctx);

//ctx.body = 'Hello World';

if (isPost("/", ctx)) {

let postData=await parsePostData(ctx);

console.log("收到的参数postData: ", postData);

saveFile(JSON.stringify(postData));

}

});//设置监听端口

app.listen(3000, () =>{

console.log("服务器开启 127.0.0.1:3000");

});

let saveFilePath= "./File";

let saveFileName= "tongguanTime.json";/** 保存文件

* @param content 保存的文件内容*/

functionsaveFile(content: string) {if (!fs.existsSync(saveFilePath)) {if(mkdirsSync(saveFilePath)) {

console.log(`${saveFilePath} 创建成功`);

}

}try{

fs.writeFileSync(path.join(saveFilePath, saveFileName), content);

console.log("文件保存成功");

}catch(error) {

console.log(error);

}

}/** 递归创建文件夹

* @param dirPath 文件夹路径*/

functionmkdirsSync(dirPath) {if(fs.existsSync(dirPath)) {return true;

}else{if(mkdirsSync(path.dirname(dirPath))) {

fs.mkdirSync(dirPath);return true;

}

}

}/** 解析 post 参数*/

functionparsePostData(ctx) {return new Promise((resolve, reject) =>{try{

let postData= '';

ctx.req.addListener('data', (data) => { //有数据传入的时候

postData +=data;

});

ctx.req.on('end', () =>{

let parseData=parseQueryStr(postData);

resolve(parseData);

});

}catch(e) {

reject(e);

}

})

}//处理 string => json

functionparseQueryStr(queryStr) {//console.log("queryStr: ",queryStr);

let queryData ={};

let queryStrList= queryStr.split('&');//console.log("queryStrList: ",queryStrList);

for(let queryStr of queryStrList) {

let itemList= queryStr.split('=');//console.log('itemList: ', itemList);

queryData[itemList[0]] = decodeURIComponent(itemList[1]);

}//console.log("queryData: ",queryData);

returnqueryData;

}/** 是否是post请求

* @param path url路径

* @param ctx koa2的上下文对象*/

functionisPost(path, ctx) {return ctx.url === path && ctx.method === 'POST';

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值