gpt4 book ai didi

node.js - 如何从 Controller 中获取配置(从 Controller 中获取配置)?

转载 作者:搜寻专家 更新时间:2023-10-31 23:33:06 26 4
gpt4 key购买 nike

我使用完全默认的 Kraken.js 应用。

我想在 config.js 文件中为 .dust 模板(选择选项)定义一些配置。然后我需要在我的 Controller 中获取这些配置。我如何在 Controller 中获取配置?这是一个示例代码:

'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
});
}

最佳答案

这个问题在 krakenjs repo 重复了.

假设您使用的是 Kraken < v1.0,配置由 nconf 处理. nconf,依赖node的模块缓存,提供单例。换句话说,无论何时包含 nconf,您都会得到完全相同的实例。因此,您可以使用以下内容访问 kraken 配置:

var config = require('nconf');

var shouldHide = config.get('middleware:myModule:hideWidget');

if (shouldHide === true) {
// ... do something ...
}

另一方面,如果您使用的是 kraken >= v1.0,kraken 会利用 confit用于配置。由于 confit(按设计)不暴露单例,建议您尝试完全在 onConfig 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 ...
}
};

关于node.js - 如何从 Controller 中获取配置(从 Controller 中获取配置)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24612096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com