我使用完全默认的Kraken.js应用程序。
我想在一个.dust文件中为config.js模板(选择选项)定义一些信任。那我就得把这些秘密交到我的控制器里。如何在控制器中获得配置?下面是一个示例代码:
'use strict';
var Post = require('../../models/post');
var mongoose = require("mongoose");
// How to get config, for example, here??
var config = require(".....config.....")
module.exports = function (router) {
// or how to get a config here as the third argument of a function, for example?
router.get('/', function (req, res) {
// Here I want to get data from config
res.render('posts', {
foo: config.foo,
bar: config.selects.selectOne.bar
});
}发布于 2014-07-07 16:18:35
这个问题在krakenjs repo上被重复了。
假设您使用Kraken < v1.0,配置由nconf处理。nconf依赖于节点的模块缓存,提供了一个单例。换句话说,无论何时包含nconf,都会得到完全相同的实例。因此,您可以使用以下内容访问kraken配置:
var config = require('nconf');
var shouldHide = config.get('middleware:myModule:hideWidget');
if (shouldHide === true) {
// ... do something ...
}另一方面,如果您使用的是kraken >= v1.0,则kraken利用confit进行配置。由于confit-通过设计--不公开单个实例,因此建议您尝试完全在 handler中处理配置。同样,这也是建议的做法。
尽管如此,在某些情况下,您不能在初始阶段处理所有配置,而是在路由解析中处理。在这种情况下,我们将应用程序实例上的kraken配置存储为app.kraken。因此,只要您能够访问应用程序实例,就可以访问您的配置。
下面是一个从路由处理程序访问配置的示例:
// ./routes/secure.js
'use strict';
module.exports = function (req, res) {
var shouldHide = req.app.kraken.get('middleware:myModule:hideWidget');
if (shouldHide === true) {
// ... do something ...
}
};发布于 2014-07-07 14:35:47
您可以添加一个config.json文件,并从NPM导入"nconf“包。
var nconf = require('nconf');
nconf.env().file({ file: 'config.json' });
var adminUsername = nconf.get("ADMIN");在你的config.json中:
{
"ADMIN": "Test",
}https://stackoverflow.com/questions/24612096
复制相似问题