Javascript node.js/backbone.js应用程序加载配置文件设置
我有一个节点/主干/sails项目,需要加载特定于部署的配置文件 因此,在应用程序的sails部分,我可以在 myapp/config/mysettings.js 并引用它sails.config.mysettings.foo。这正如预期的那样有效 但在应用程序的主干部分,我一辈子都不知道如何引用同一个文件(…为简洁起见,这些文件都是剪报)Javascript node.js/backbone.js应用程序加载配置文件设置,javascript,node.js,backbone.js,sails.js,Javascript,Node.js,Backbone.js,Sails.js,我有一个节点/主干/sails项目,需要加载特定于部署的配置文件 因此,在应用程序的sails部分,我可以在 myapp/config/mysettings.js 并引用它sails.config.mysettings.foo。这正如预期的那样有效 但在应用程序的主干部分,我一辈子都不知道如何引用同一个文件(…为简洁起见,这些文件都是剪报) 在控制台中生成未定义的消息。像这样引用应用程序范围的设置文件的正确方法是什么?我已经看过了,但找不到任何东西,这让我觉得这是非常明显的,或者我的问题措辞错误
在控制台中生成未定义的消息。像这样引用应用程序范围的设置文件的正确方法是什么?我已经看过了,但找不到任何东西,这让我觉得这是非常明显的,或者我的问题措辞错误。Sails不会让您的配置文件公开浏览。那太糟糕了 在这里,我可以想到几个选项:
fs
,创建一个仅流式传输文件的自定义路由:
require('fs')
.createReadStream(sails.config.paths.config+"/mysettings.js")
.pipe(res);
尽管您确实应该使用path
模块来确定文件路径,并将整个过程包装在try/catch
中,以防万一module.exports = function myConfigPolicy(req, res, next) {
res.locals.mysettings = sails.config.mysettings;
return next();
}
在您的视图/layout.ejs中执行以下操作:
<script type="text/javascript">
var mySettings = <%= JSON.stringify(mysettings) %>;
</script>
var mySettings=;
根据您选择的模板引擎进行调整。当然,这并不使用AMD在运行时加载配置,因此如果这是一个问题,那么选择1或2<script type="text/javascript">
var mySettings = <%= JSON.stringify(mysettings) %>;
</script>