Express Handlebar Error:You must pass a string or Handlebars AST to Handlebars.conpile

一个超级奇葩的bug。

 

app.js 添加如下中间件:

app.use(function(req, res, next){
    if (!res.locals.partials) res.locals.partials = {};
    res.locals.partials.weather = Weather.getWeatherData();
    next();
})

保存一些数据在 res.locals, 需要在局部文件中使用。 

我们将所有的局部文件上下文都放在 partials 对象中。

 

我们希望在 views/partials/weather.handlebars 中如此使用:

<div class="weather">{{partials.weather}}</div>

 

然后,出现了报错:

 

解决:

将 partials 替换成任意别的名词即可!

说明:

尝试修改 n 处试出来的结果,暂不知原因。 partials 是神秘的 关键字 | 保留字 吗?

 

posted @ 2019-01-17 12:40  弋儿  阅读(888)  评论(0编辑  收藏  举报