【发布时间】:2014-12-01 18:33:46
【问题描述】:
我有这个在app.js...
var koa = require('koa');
var locals = require('koa-locals');
var jade = require('koa-jade');
var app = koa();
locals(app, {
moment: require('moment'),
_: require('lodash')
});
app.use(jade.middleware({
viewPath: __dirname + '/views',
debug: true,
pretty: true,
compileDebug: false,
locals: this.locals
}));
您已经猜到了,moment 在视图中是未定义的。
我错过了什么?顺便说一句,为什么 koa-local 的 documentation 在示例中有奇怪的要求...
var locals = require('../');
【问题讨论】:
-
尝试调试第二个中间件(jade 中间件)中
this.locals的值。此外,该模块似乎在此频道koa:locals上进行调试,因此在使用DEBUG=koa:locals node --harmony app.js运行节点命令时您能看到任何问题吗?该模块使用了一种不太理想的方式将app.ctx和ctx.request上的.locals访问器委托给app.locals,并且根据jade 对locals选项的作用,可能会遇到一些问题。