我正在将我的应用程序从Express转换为sails.js - 我是否可以在Sails中执行此类操作?
来自Express中的app.js
文件:
var globals = {
name: 'projectName',
author: 'authorName'
};
app.get('/', function (req, res) {
globals.page_title = 'Home';
res.render('index', globals);
});
这让我可以在每个视图上访问这些变量,而无需将它们硬编码到模板中。不知道在Sails中如何/在哪里做到这一点。
答案 0 :(得分:91)
您可以在config/
文件夹中创建自己的配置文件。例如config/myconf.js
和您的配置变量:
module.exports.myconf = {
name: 'projectName',
author: 'authorName',
anyobject: {
bar: "foo"
}
};
然后通过全局sails
变量从任意视图访问这些变量。
<!-- views/foo/bar.ejs -->
<%= sails.config.myconf.name %>
<%= sails.config.myconf.author %>
// api/services/FooService.js
module.exports = {
/**
* Some function that does stuff.
*
* @param {[type]} options [description]
* @param {Function} cb [description]
*/
lookupDumbledore: function(options, cb) {
// `sails` object is available here:
var conf = sails.config;
cb(null, conf.whatever);
}
};
// `sails` is not available out here
// (it doesn't exist yet)
console.log(sails); // ==> undefined
// api/models/Foo.js
module.exports = {
attributes: {
// ...
},
someModelMethod: function (options, cb) {
// `sails` object is available here:
var conf = sails.config;
cb(null, conf.whatever);
}
};
// `sails is not available out here
// (doesn't exist yet)
注意:这在策略中的工作方式相同。
// api/controllers/FooController.js
module.exports = {
index: function (req, res) {
// `sails` is available in here
return res.json({
name: sails.config.myconf.name
});
}
};
// `sails is not available out here
// (doesn't exist yet)
答案 1 :(得分:0)
我刚刚提供了可以提供价值的服务:
maxLimbs: function(){
var maxLimbs = 15;
return maxLimbs;
}