我有一个node / backbone / sails项目,需要加载部署特定的配置文件。
因此,在应用程序的sails部分,我可以放置一个配置文件 的myapp /配置/ mysettings.js
并引用它 sails.config.mysettings.foo 。这可以按预期工作。
但是在应用程序的主干部分,我不能为我的生活弄清楚如何引用同一个文件(...为了简洁而剪短)。
define([
'jquery',
'async',
...,
**'/config/mysettings.js'**
], function ($, async, ..., **mysettings**) {
relevantAjaxFunction: function() {
...
**fail**:
console.log(mysettings.foo);
在控制台中生成未定义的消息。引用这样的应用程序范围设置文件的正确方法是什么?我看上去找不到任何东西,这让我觉得它显得非常明显,或者我把这个问题弄错了。
答案 0 :(得分:1)
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();
}
以防万一...
使用策略为每个请求在本地变量中添加配置设置,例如:
<script type="text/javascript">
var mySettings = <%= JSON.stringify(mysettings) %>;
</script>
并在您的 views / layout.ejs 中执行以下操作:
{{1}}
调整您选择的模板引擎。当然,这不会使用AMD在运行时加载配置,所以如果这是一个问题,请选择#1或#2!