web-dev-qa-db-fra.com

Créer des variables de configuration dans sails.js?

Je convertis une de mes applications d'Express en sails.js - est-il possible de faire quelque chose comme ça dans Sails?

De mon app.js fichier dans Express:

var globals = {
    name: 'projectName',
    author: 'authorName'
};

app.get('/', function (req, res) {
    globals.page_title = 'Home';
    res.render('index', globals);
});

Cela m'a permis d'accéder à ces variables sur chaque vue sans avoir à les coder en dur dans le modèle. Je ne sais pas comment/où le faire dans Sails.

42
user2688473

Vous pouvez créer votre propre fichier de configuration dans config/ dossier. Par exemple config/myconf.js avec vos variables de configuration:

module.exports.myconf = {
    name: 'projectName',
    author: 'authorName',

    anyobject: {
      bar: "foo"
    }
};

puis accédez à ces variables depuis n'importe quelle vue via la variable globale sails.

En vue:

<!-- views/foo/bar.ejs -->
<%= sails.config.myconf.name %>
<%= sails.config.myconf.author %>

Dans un service

// 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

Dans un modèle:

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

Dans un contrôleur:

Remarque: Cela fonctionne de la même manière dans les stratégies.

// 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)
92
ataman