koa使用記錄--接收文件
koa是一個比較不錯的基于node的服務端框架,它采用的是插件化的模式檐迟,它可以整合很多很多的中間件垫言,它本身也很小巧。
雖然說,我本身也不太看到node做純后端開發(fā)窜锯,但是js的語言表現(xiàn)能力確實是強张肾,同樣的代碼邏輯,它的代碼行數(shù)遠小于java锚扎,而且它的API層的異步IO異步的思想吞瞪,確實讓我很感興趣,以前也曾簡單的用過Koa框架驾孔,但是最近部門老大芍秆,讓我開始寫node后端惯疙,所以要認真的學一學,多去看看源碼了妖啥,從這篇簡單的記錄開始吧霉颠,開始我node開發(fā)者的身份。
koa想要接收文件荆虱,需要依賴koa-body
蒿偎,這個中間件,可以很好的為我們處理接收的邏輯怀读,下面我們簡單的看一下代碼:
/**
* Module dependencies.
*/
const logger = require('koa-logger');
const serve = require('koa-static');
const koaBody = require('koa-body');
const Koa = require('koa');
const fs = require('fs');
const app = new Koa();
const os = require('os');
const path = require('path');
app.use(koaBody({multipart: true}));
app.use(async function (ctx, next) {
await next();
if (ctx.body || !ctx.idempotent) return;
ctx.redirect('/404.html');
});
app.use(serve(path.join(__dirname, '/public')));
app.use(async function (ctx, next) {
// ignore non-POSTs
if ('POST' != ctx.method) return await next();
const file = ctx.request.body.files.file;
console.log(file.path)
ctx.body = "success";
});
// listen
app.listen(3000);
console.log('listening on port 3000');
這樣我們便很輕松的接收到了文件诉位。
image
按照以上的方式便可以發(fā)出請求,記住header一定要空菜枷。
好了苍糠,以上便是如何利用koa接收文件了。