• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
    當前位置: 首頁 - 科技 - 知識百科 - 正文

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

    來源:懂視網 責編:小采 時間:2020-11-27 22:10:31
    文檔

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

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

    最近在學習使用koa2,在嘗試用koa2復寫之前用express寫的一個入口文件的時候發現命令行報錯ctx.render is not a function

     

    項目路徑如下

     

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

    koa.js是用koa2復寫的入口文件

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

    報錯時koa.js代碼如下

    //使用koa復寫入口文件
    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 首頁"
     })
    });

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

    //使用koa復寫入口文件
    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);
    
    //設置路由
    router.get('/', async(ctx, next) => {
     await ctx.render("index",{
     title:"nodeWeb 首頁"
     })
    });

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

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

    文檔

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

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

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产成人亚洲精品| 国产亚洲精品AA片在线观看不加载| 国产欧美精品区一区二区三区| 精品成人免费自拍视频| 色偷偷888欧美精品久久久| 国产精品久久亚洲不卡动漫| 国产精品欧美一区二区三区不卡| 国产精品亚洲精品| 国产精品日日摸夜夜添夜夜添1国产精品va欧美精 | 国产精品免费福利久久| 国产精品v欧美精品v日韩精品 | 久久亚洲精品中文字幕| 国产精品久久久久国产A级| 国产第一福利精品导航| 国产精品日韩欧美在线第3页| 无码国产亚洲日韩国精品视频一区二区三区 | 国产人妖乱国产精品人妖| 欧美精品888| 亚洲国产高清精品线久久 | 精品久久久久久无码人妻热| 一本久久a久久精品综合香蕉| 国产精品无码无片在线观看| 国产精品国产三级国产AⅤ| 亚洲永久精品ww47| 99熟女精品视频一区二区三区| 亚洲高清国产拍精品青青草原| 国产精品久久波多野结衣| 久久久久无码精品| 国产一区二区精品久久| 亚洲国产人成精品| 国产精品成人观看视频| 国产成人精品高清在线观看93| 精品亚洲欧美中文字幕在线看| 国产精品爽爽ⅴa在线观看| 亚洲精品乱码久久久久久自慰| 中国精品videossex中国高清| 无码aⅴ精品一区二区三区浪潮| 精品国产日韩亚洲一区| 久久精品中文字幕久久| 国精品午夜福利视频不卡麻豆| 亚洲欧美精品丝袜一区二区 |