100-days-Coding - day9

day9-0812

上次在用form做文件上傳的時候丑蛤,自己方便測試使用koa搭建了一個臨時后臺「其實(shí)很早之前就已經(jīng)接觸了捌刮,express的替代者,更輕量化,富中間件化

koa的使用雖然也只是簡單的了解層面袜啃,不過還是get到一些不一樣的事情

從一個簡單的form表單引申出的都有什么呢?

  • koa服務(wù)器的開啟
  • koa的表單處理中間件koa-body
  • promise的使用 - 「是在沒想到koa使用promise到這種地步」
  • async & await - 「老生暢談 - 異步匈子,同步糟心事惹」
  • imdb-api的簡單使用 - 「之前有用unsplashapi做過一個每日推送美圖的vueapp

細(xì)想一下路召,哇咔咔,還是有好多新坑需要填栋烤。


#1. koa的服務(wù)器開啟

koa作為express的替代者谒养,達(dá)到同樣目的情況下給人一種簡潔的美

const Koa = require('koa');
const app = new Koa();

const main = ctx => {
    ctx.response.body = 'serer ha, gotcha!'
}

app.use(main)

app.listen(3006, () => {
    console.log('server running ...')
})
  • main作為服務(wù)器相應(yīng)主函數(shù)明郭,知道你想使用路由买窟,直接判斷ctx.request.path === your_path就可以啦!- 「原生的哦

  • 當(dāng)然薯定,路由也可以使用中間件koa-route始绍。「要自己去查哦话侄!」

#2. koa-body中間件

為了能夠獲取前端傳來的form表單的數(shù)據(jù)你需要獲取post data 或者是get parameters亏推,來進(jìn)行相應(yīng)的處理

const Koa = require('koa');
const koaBody = require('koa-body');
const app = new Koa();


// 文件處理
const main = async function(ctx) {
  const files = ctx.request.body.files // get your files with body.files
};

app.use(koaBody({ multipart: true }));
app.use(main)

app.listen(3006, () => {
  
    console.log('server running ...')
})
  • 文件的處理需要async的幫助学赛,不止是文件處理,還有其他的異步操作吞杭,比如ajax的數(shù)據(jù)請求盏浇,原因是「REASON

#3. promise的使用

promise的語法糖真的是好甜!
使用promise的寫法不僅可以更清楚的表達(dá)你的邏輯芽狗,更重要的是很

const queryMovie = (movie) => {
    return new Promise((resolve, reject) => {
        imdb.get({
            name: movie
            // id: 'tt3896198'
        }, {
            apiKey: OMDB_KEY_HONGWING,
            timeout: 30000
        }).then((res) => {
            // 數(shù)據(jù)正常就是 resolve
            resolve(res)
        }).catch((e) => {
           // 數(shù)據(jù)異常就是 reject
            reject(e)
        })
    })
    
}
  • 簡單點(diǎn)來說绢掰,就是將函數(shù)的執(zhí)行就類似于pipe。倘若達(dá)到你的條件童擎,就會流向你該條所導(dǎo)向的地方 - 「resolve & reject
  • Note: 經(jīng)常的使用會有助于你將你的代碼邏輯轉(zhuǎn)向promise滴劲,更加清楚真?zhèn)€邏輯流程 「不要強(qiáng)行使用哦!

#4. async & await 再次相遇

F.E.D始終逃不掉的就是異步 & 同步顾复,「 REASON 」Javascript with single thread
異步的常見的會有: 回調(diào)函數(shù)班挖,發(fā)布訂閱,時間驅(qū)動處理芯砸,和 promise


const movieQuery = async function (ctx) {
    const moviename = ctx.request.url.split('?')[1].split('=')[1]
    await queryMovie(moviename).then((res) => {
        console.log(res)
        ctx.body = res
    }).catch((e) => {
        ctx.body = e
    })
};
  • async表明了函數(shù)是異步執(zhí)行的聪姿,這個異步執(zhí)行的函數(shù)內(nèi)部使用了await表明了需要在執(zhí)行 queryMovie() - ajax時等一下即同步
  • Note: 「四種常見的寫法記得去看看哦乙嘀!

#5. imdb-api 相關(guān)

imdb-api是一個包末购,用于獲取imdb提供的電影信息

The ant man
  • 使用比較簡單 擁有一個omdb_key就可以啦! 「daily 1000 times
  • 可以展開你的想法虎谢,「做出好玩的東西哦盟榴!

#End preference

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末婴噩,一起剝皮案震驚了整個濱河市擎场,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌几莽,老刑警劉巖迅办,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異章蚣,居然都是意外死亡站欺,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門纤垂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來矾策,“玉大人,你說我怎么就攤上這事峭沦〖炙洌” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵吼鱼,是天一觀的道長蓬豁。 經(jīng)常有香客問我绰咽,道長,這世上最難降的妖魔是什么地粪? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任取募,我火速辦了婚禮,結(jié)果婚禮上驶忌,老公的妹妹穿的比我還像新娘矛辕。我一直安慰自己笑跛,他們只是感情好付魔,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著飞蹂,像睡著了一般几苍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陈哑,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天妻坝,我揣著相機(jī)與錄音,去河邊找鬼惊窖。 笑死刽宪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的界酒。 我是一名探鬼主播圣拄,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼毁欣!你這毒婦竟也來了庇谆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤凭疮,失蹤者是張志新(化名)和其女友劉穎饭耳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體执解,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寞肖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衰腌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逝淹。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖桶唐,靈堂內(nèi)的尸體忽然破棺而出栅葡,到底是詐尸還是另有隱情,我是刑警寧澤尤泽,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布欣簇,位于F島的核電站规脸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏熊咽。R本人自食惡果不足惜莫鸭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望横殴。 院中可真熱鬧被因,春花似錦、人聲如沸衫仑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽文狱。三九已至粥鞋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞄崇,已是汗流浹背呻粹。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留苏研,地道東北人等浊。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像摹蘑,于是被迫代替她去往敵國和親筹燕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容