欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決koa2 ctx.render is not a function報(bào)錯(cuò)問題

 更新時(shí)間:2018年08月07日 11:14:21   作者:wopelo  
這篇文章主要介紹了解決koa2 ctx.render is not a function報(bào)錯(cuò)問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

 

項(xiàng)目路徑如下

 

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

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

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

報(bào)錯(cuò)時(shí)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í)這個(gè)bug很好解決,那就是把配置模板引擎的代碼移動(dòng)到所有與路由相關(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 首頁"
  })
});

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解一個(gè)基于套接字實(shí)現(xiàn)長連接的express

    詳解一個(gè)基于套接字實(shí)現(xiàn)長連接的express

    這篇文章主要介紹了詳解一個(gè)基于套接字實(shí)現(xiàn)長連接的express,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • node實(shí)現(xiàn)socket鏈接與GPRS進(jìn)行通信的方法

    node實(shí)現(xiàn)socket鏈接與GPRS進(jìn)行通信的方法

    這篇文章主要介紹了node實(shí)現(xiàn)socket鏈接與GPRS進(jìn)行通信的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 深入理解nodejs搭建靜態(tài)服務(wù)器(實(shí)現(xiàn)命令行)

    深入理解nodejs搭建靜態(tài)服務(wù)器(實(shí)現(xiàn)命令行)

    這篇文章主要介紹了深入理解nodejs搭建靜態(tài)服務(wù)器(實(shí)現(xiàn)命令行),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • 優(yōu)化Node.js Web應(yīng)用運(yùn)行速度的10個(gè)技巧

    優(yōu)化Node.js Web應(yīng)用運(yùn)行速度的10個(gè)技巧

    這篇文章主要介紹了優(yōu)化Node.js Web應(yīng)用運(yùn)行速度的10個(gè)技巧,本文講解了從并行、異步、緩存、gzip 壓縮、客戶端渲染等等技巧,需要的朋友可以參考下
    2014-09-09
  • nodejs URL模塊操作URL相關(guān)方法介紹

    nodejs URL模塊操作URL相關(guān)方法介紹

    這篇文章主要介紹了nodejs URL模塊操作URL相關(guān)方法介紹,本文講解了parse方法、format方法、querystring方法等,需要的朋友可以參考下
    2015-03-03
  • Node.js學(xué)習(xí)之地址解析模塊URL的使用詳解

    Node.js學(xué)習(xí)之地址解析模塊URL的使用詳解

    url模塊是nodejs里面的一個(gè)簡單的模塊,下面這篇文章主要給大家介紹了關(guān)于Node.js學(xué)習(xí)之地址解析模塊URL使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • node.js抓取并分析網(wǎng)頁內(nèi)容有無特殊內(nèi)容的js文件

    node.js抓取并分析網(wǎng)頁內(nèi)容有無特殊內(nèi)容的js文件

    nodejs獲取網(wǎng)頁內(nèi)容綁定data事件,獲取到的數(shù)據(jù)會分幾次相應(yīng),如果想全局內(nèi)容匹配,需要等待請求結(jié)束,在end結(jié)束事件里把累積起來的全局?jǐn)?shù)據(jù)進(jìn)行操作,本文給大家介紹node.js抓取并分析網(wǎng)頁內(nèi)容有無特殊內(nèi)容的js文件,需要的朋友參考下
    2015-11-11
  • NodeJS使用遞歸算法和遍歷算法來遍歷目錄的方法

    NodeJS使用遞歸算法和遍歷算法來遍歷目錄的方法

    遍歷目錄是操作文件時(shí)的一個(gè)常見需求,比如寫一個(gè)程序,需要找到并處理指定目錄下的所有JS文件時(shí),就需要遍歷整個(gè)目錄,NodeJS遍歷目錄可以使用遞歸算法、遍歷算法,遍歷算法又分為同步遍歷、異步遍歷兩種,本文介紹NodeJS使用遞歸算法和遍歷算法來遍歷目錄的方法
    2023-11-11
  • node+experss實(shí)現(xiàn)爬取電影天堂爬蟲

    node+experss實(shí)現(xiàn)爬取電影天堂爬蟲

    本文給大家分享的是node+experss制作爬蟲的第二篇,我們來爬取電影天堂最新更新的電影迅雷下載鏈接,有需要的小伙伴可以參考下
    2016-11-11
  • 學(xué)習(xí) NodeJS 第八天:Socket 通訊實(shí)例

    學(xué)習(xí) NodeJS 第八天:Socket 通訊實(shí)例

    本篇文章主要介紹了學(xué)習(xí) NodeJS 第八天:Socket 通訊實(shí)例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2016-12-12

最新評論