Nodejs Koa2:TyperError:ctx.render不是一个函数

时间:2017-05-20 22:31:17

标签: node.js koa2

我对Node和Koa2很新,所以请耐心等待。

我收到此错误:

TypeError: ctx.render is not a function

这是触发错误的行:

class HtmlRouter {
    static async home(ctx) {
        await ctx.render('index.ejs', {});
    }
}

我使用ejs作为模板引擎。

我错误或遗失了什么?

1 个答案:

答案 0 :(得分:0)

好的,我刚刚解决了这个问题。

我有这个:

app.use(body());

app.use(mount('/api/v1', filmRouter.routes()));
app.use(filmRouter.routes());
app.use(htmlRouter.routes());


app.use(views(__dirname + '/views', {
    map: {
        ejs: 'ejs'
    }
}));

该错误是由于中间件的顺序。按此顺序,它工作正常:

app.use(body());

app.use(views(__dirname + '/views', {
    map: {
        ejs: 'ejs'
    }
}));


app.use(mount('/api/v1', filmRouter.routes()));
app.use(filmRouter.routes());
app.use(htmlRouter.routes());

请注意,在以前的代码片段中,如果正在运行依赖于它的中间件,则会定义模板引擎。