我对Node和Koa2很新,所以请耐心等待。
我收到此错误:
TypeError: ctx.render is not a function
这是触发错误的行:
class HtmlRouter {
static async home(ctx) {
await ctx.render('index.ejs', {});
}
}
我使用ejs
作为模板引擎。
我错误或遗失了什么?
答案 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());
请注意,在以前的代码片段中,如果正在运行依赖于它的中间件,则会定义模板引擎。