我有一个看起来像这样的控制器。
module.exports = {
readbyslug: function (req, res) {
var slug = req.param('id');
Store.findOneByName(slug.split('-').join(' '))
.then(function(err, store){
if(err)
res.send({status:'error', msg:'no store'});
res.send(store);
});
}
};
但是,我宁愿不在控制器中进行所有这些登录,我宁愿将它们粘贴在另一个模块中。
我的问题是,如何访问模型?他们是全球性的还是什么?
答案 0 :(得分:17)
Chadams--模型默认是全局的。因此,如果您执行sails generate model foo
,则可以在代码中访问Foo
。如果您不想以这种方式访问它们,可以使用sails
引用来访问sails.models.foo
,这是相同的事情。
希望有所帮助!
顺便说一下,通过自定义
sails.config.globals
,这种自动全球化是可以禁用的。例如:
// To configure what's available globally, make a new file, `config/globals.js`
// with the following contents:
// In this example, I'll disable globalization of models, as well as _ and async.
// (But I'll leave the `sails` global available.)
// Variables which will be made globally accessible to the server process
module.exports.globals = {
_ : false,
async: false,
models: false,
sails: true
};