koa 中如何将moment集成到全局?让每个模板都能直接方法?
发布于 6 年前 作者 ycg520520 5188 次浏览 来自 问答

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

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

在koa中如何集成呢?

7 回复

搞定了

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

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

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

const moment = require(‘moment’); global.moment = moment;

这样就是全局变量了

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

@fantasy 模板中就传进去吧~

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

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

app.use(convert(function* (next){
    this.state = {
      moment: moment
    }
    yield *next
  }))
回到顶部