我是Node和Koa2的新手,所以请耐心听我说。
我得到了这个错误:
TypeError: ctx.render is not a function
下面是触发错误的行:
class HtmlRouter {
static async home(ctx) {
await ctx.render('index.ejs', {});
}
}我使用ejs作为模板引擎。
我做错了什么或遗漏了什么?
发布于 2017-05-21 06:40:27
好的,我自己解决了这个问题。
我有这样的经历:
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());请注意,在前面的代码片段中,模板引擎是如何在依赖它的中间件运行之后定义的。
https://stackoverflow.com/questions/44091409
复制相似问题