如何在控制器外的sailsjs中访问我的模型?

时间:2013-09-04 15:19:29

标签: node.js sails.js

我有一个看起来像这样的控制器。

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

    });
  }
};

但是,我宁愿不在控制器中进行所有这些登录,我宁愿将它们粘贴在另一个模块中。

我的问题是,如何访问模型?他们是全球性的还是什么?

1 个答案:

答案 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
};