首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Koa-当地人不工作

Koa-当地人不工作
EN

Stack Overflow用户
提问于 2014-12-02 02:33:47
回答 2查看 601关注 0票数 0

我在app.js里有这个。

代码语言:javascript
复制
    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在示例中有奇怪的要求...

代码语言:javascript
复制
var locals = require('../'); 
EN

回答 2

Stack Overflow用户

发布于 2015-04-09 11:22:16

实际上,我从来没有使用过koa -,但是现在你可以使用koa状态的内置特性来将数据传递给你的视图。

代码语言:javascript
复制
this.state.utils = {
    moment: require('moment'),
    _: require('lodash')
};
票数 0
EN

Stack Overflow用户

发布于 2016-04-22 09:33:09

在调用app.use(jade.middleware({时,this.locals引用global对象。您不是在中间件闭包中,您只是在使用this (global),并且从未在global对象上定义过本地变量(意料之中)。

也许只需将您提供给koa-locals的相同对象传递给jade.middleware

代码语言:javascript
复制
var koa = require('koa');
var locals = require('koa-locals');
var jade = require('koa-jade');

var app = koa();
var helpers = {
  moment: require('moment'),
  _: require('lodash')
};

locals(app, helpers);

app.use(jade.middleware({
   viewPath: __dirname + '/views',
   debug: true,
   pretty: true,
   compileDebug: false,
   locals: helpers
}));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27234885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档