nodejs Bigpipe 頁面分割加載筆記

Bigpipe頁面分割

項(xiàng)目中需要打印日志文件,因文件過大所以分割加載,以便將來改為持續(xù)輸出加載

1、 在使用await前,系統(tǒng)自己結(jié)束了res輸出,造成報(bào)錯(cuò)end after write,于是使用await停止當(dāng)前resopnse結(jié)束,等待主動(dòng)觸發(fā)res.end(),才進(jìn)入正常大頁面分割輸出
2、輸出報(bào)錯(cuò)404,但是,文件已經(jīng)觸發(fā)了end,并正常返回,于是設(shè)置文件頭writeHead status code為200 返回正常

/**
 * @name 日志文件打印
 */

app.use(router.get("/xxx",async (ctx,next)=>{

    let url = "./logs/logfile.log";
    let num = ctx.query["old"];
    if(num) url+="."+num

   //   設(shè)置文件頭
    ctx.res.writeHead(200,{
        'Accept': 'text/plain',
        'Content-Type':'text/plain;charset=utf-8',
        'Transfer-Encoding' : 'chunked'
    })

    await (new Promise((resolve,reject)=>{

        let st = fs.createReadStream(url,{highWaterMark:10})
        st.setEncoding("utf8");

        st.on("data",d=>{
          ctx.res.write(d);
        })

        st.on("end",d=>{
          ctx.res.end();
        })
    }))   
    next();
}))

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.運(yùn)行一個(gè)nodejs文件, 如一個(gè)js文件中只含有console.log("hello world");的文件...
    不忘初心_9a16閱讀 6,039評論 0 8
  • 個(gè)人入門學(xué)習(xí)用筆記、不過多作為參考依據(jù)。如有錯(cuò)誤歡迎斧正 目錄 簡書好像不支持錨點(diǎn)、復(fù)制搜索(反正也是寫給我自己看...
    kirito_song閱讀 2,649評論 1 37
  • 躲在煙灰缸后面, 從此刻開始,想你。 你在睡著,我在醒著。 情人節(jié), 他們眼中的,男男女女。 對視中,或許不只是,...
    此事無關(guān)風(fēng)月閱讀 128評論 0 0
  • 今天我們又參加小班的活動(dòng)。 我們的期喝點(diǎn),跟以前一樣都是在品勝門口。這次我們有車的,要開車不會(huì)這次的人會(huì)比較...
    馭帥閱讀 706評論 0 0
  • 在所有前進(jìn)的道路上如果沒有國家作為堅(jiān)實(shí)的后盾,就如同飛機(jī)失去了雷達(dá);在所有擁有的東西中如果失去了自己的本心,就如同...
    大妃閱讀 464評論 0 7

友情鏈接更多精彩內(nèi)容