• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    解決koa2 ctx.render is not a function報錯問題

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:10:31
    文檔

    解決koa2 ctx.render is not a function報錯問題

    解決koa2 ctx.render is not a function報錯問題:最近在學(xué)習(xí)使用koa2,在嘗試用koa2復(fù)寫之前用express寫的一個入口文件的時候發(fā)現(xiàn)命令行報錯ctx.render is not a function 項目路徑如下 app.js是之前用express寫的入口文件 koa.js是用koa2復(fù)寫的入口文件 view是前端頁面文
    推薦度:
    導(dǎo)讀解決koa2 ctx.render is not a function報錯問題:最近在學(xué)習(xí)使用koa2,在嘗試用koa2復(fù)寫之前用express寫的一個入口文件的時候發(fā)現(xiàn)命令行報錯ctx.render is not a function 項目路徑如下 app.js是之前用express寫的入口文件 koa.js是用koa2復(fù)寫的入口文件 view是前端頁面文

    最近在學(xué)習(xí)使用koa2,在嘗試用koa2復(fù)寫之前用express寫的一個入口文件的時候發(fā)現(xiàn)命令行報錯ctx.render is not a function

     

    項目路徑如下

     

    app.js是之前用express寫的入口文件

    koa.js是用koa2復(fù)寫的入口文件

    view是前端頁面文件夾,使用的模板引擎是pug

    報錯時koa.js代碼如下

    //使用koa復(fù)寫入口文件
    const Koa = require('koa');
    const Router = require('koa-router');
    const koaBody = require('koa-body');
    const views = require('koa-views');
    const serve = require('koa-static');
    
    const app = new Koa();
    const router = new Router();
    
    app.use(serve(__dirname));
    app.use(koaBody()).use(router.routes());
    app.use(views(__dirname + '/views/pages',{
     extension: 'pug'
    }))
    
    app.listen(3000);
    
    router.get('/', async(ctx, next) => {
     await ctx.render("index",{
     title:"nodeWeb 首頁"
     })
    });

    其實(shí)這個bug很好解決,那就是把配置模板引擎的代碼移動到所有與路由相關(guān)的代碼之前,在這里就應(yīng)該修改為

    //使用koa復(fù)寫入口文件
    const Koa = require('koa');
    const Router = require('koa-router');
    const koaBody = require('koa-body');
    const views = require('koa-views');
    const serve = require('koa-static');
    
    const app = new Koa();
    const router = new Router();
    
    app.use(serve(__dirname));
    //配置模板引擎
    app.use(views(__dirname + '/views/pages',{
     extension: 'pug'
    }))
    //使用koa-router
    app.use(koaBody()).use(router.routes());
    
    app.listen(3000);
    
    //設(shè)置路由
    router.get('/', async(ctx, next) => {
     await ctx.render("index",{
     title:"nodeWeb 首頁"
     })
    });

    造成這個bug的原因是因為中間件的執(zhí)行是有順序的,路由在前,然后模板引擎在后的話,當(dāng)執(zhí)行到ctx.render的時候,模板引擎相關(guān)的中間件還未執(zhí)行,render方法還未綁定到ctx上,所以就會報ctx.render is not a function

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    解決koa2 ctx.render is not a function報錯問題

    解決koa2 ctx.render is not a function報錯問題:最近在學(xué)習(xí)使用koa2,在嘗試用koa2復(fù)寫之前用express寫的一個入口文件的時候發(fā)現(xiàn)命令行報錯ctx.render is not a function 項目路徑如下 app.js是之前用express寫的入口文件 koa.js是用koa2復(fù)寫的入口文件 view是前端頁面文
    推薦度:
    標(biāo)簽: not is function
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久精品国产99久久无毒不卡| 国产精品第12页| 久久国产免费观看精品3| 国产精品一区二区久久精品无码| 国内精品久久久久久久97牛牛 | 久久久久久亚洲精品成人| 国产精品永久免费| 国产原创精品视频| 国产精品亚洲一区二区三区在线| 亚洲国产精品无码久久| 久久夜色撩人精品国产小说| 99久久精品无码一区二区毛片| 久久99精品久久久久久动态图| 午夜精品久久久久久久无码| 看99视频日韩精品| 国产精品视频全国免费观看 | 综合在线视频精品专区| 巨大黑人极品VIDEOS精品| 国产午夜精品理论片| 亚洲一二成人精品区| 国产精品亚洲精品观看不卡| 国产精品禁18久久久夂久| 精品无码国产一区二区三区AV| 亚洲日韩精品无码专区网址| 无码乱码观看精品久久| 色哟哟国产精品免费观看| 鲸鱼传媒绿头鱼实验室之炮机测评日韩精品一级毛 | 精品人妻少妇一区二区三区不卡| 亚洲人成国产精品无码| 国产精品久久毛片完整版| 国产精品内射后入合集| 久久精品国产亚洲AV电影| 国产精品亚洲成在人线| 国产精品福利自产拍在线观看| 国产麻豆精品久久一二三| 国产AV午夜精品一区二区入口 | 国精无码欧精品亚洲一区| 国产精品网站在线观看免费传媒 | 国产精品亚洲日韩欧美色窝窝色欲| 久久ww精品w免费人成| 国产探花在线精品一区二区|