在全球范围内要求Sails.js中的模块的最佳实践?

Bri*_*one 12 javascript bcrypt sails.js

我目前正在构建我的Sails.js应用程序的身份验证部分,使用bcrypt哈希密码.一切都运作良好,这是迄今为止的实施示例:

beforeCreate: function (values, next) {

    require('bcrypt').hash(values.password, 10, function passwordEncrypted(err, encryptedPassword) {

        if (err) return next(err);

        values.password = encryptedPassword;
        next();

    });

}
Run Code Online (Sandbox Code Playgroud)

现在,无论是我model和我的controller,我都在使用require('bcrypt'),var bcrypt = require('bcrypt');所以我可以在课堂上使用它.

我正在寻找一种更好的实践方式来定义var bcrypt = require('bcrypt');一次和全局,以便我可以随时使用bcrypt变量(在其他模型或控制器内).

我倾向于认为Sails.js已经有了适当的东西吗?如果没有,您建议最佳实施方式是什么?最后,我正在寻找最佳实践.

提前致谢!

bre*_*hin 30

由于Node.js模块首次加载后会被缓存,因此重用require('bcrypt')或不重用不会对性能产生任何影响.

也就是说,如果你还在为达到做你的方式,你可以要求bcryptconfig/bootstrap.js和它添加到sails命名空间:

module.exports.bootstrap = function (cb) {
  sails.bcrypt = require('bcrypt');

  //...

  cb();
}
Run Code Online (Sandbox Code Playgroud)

之后,您将能够sails.bcrypt在您的控制器或模型中使用.