CNode

koa 中如何将moment集成到全局?让每个模板都能直接方法?

问答
Yycg520520发布于10 年前最后回复10 年前7 回复6377 浏览0 收藏

在express中可以这样,每个模版里面就可以调用了

app.use(views(__dirname + '/views', {
		extension:'ejs',
		locals:{
		  moment: moment
		}
		})
	)

在koa中如何集成呢?

查看回复

回复 (7)

Y
ycg520520#1·10 年前

搞定了

a.use(convert(function* (next){
    this.state = {
      moment: moment
    }
    yield *next
  }))

这样就可以在模版中使用{{ moment()}}了

H
hezhongfeng#2·10 年前

新手还真不知道怎么全局 一般都是直接使用了~

W
welefen#3·10 年前

const moment = require('moment'); global.moment = moment;

这样就是全局变量了

F
fantasy#4·10 年前
引用 welefenconst moment = require('moment'); global.moment = moment; 这样就是全局变量了

@welefen lz 是要在模板中使用,这个只能在 Node 端使用吧

K
kenberkeley#6·10 年前

呃 不是有一个 app.locals 吗。。。哦,看错了我还以为是 Express

Y
ycg520520#7·10 年前

global虽然可以全局,但是需要每次渲染模板都要注入进去,不是那么方便。 一 下方式不需要在渲染的时候注入,这个交个koa去处理了,在写模板的时候就不用考虑了,这样我还可以默认注入一些其它的处理 方便多了。

app.use(convert(function* (next){
    this.state = {
      moment: moment
    }
    yield *next
  }))
参与回复
登录后即可参与回复。登录