javascript - Sails.js 全局引用一个包

标签 javascript node.js npm sails.js

我现在经常使用 Sails,并且有一个练习题。现在,当我想在项目中一遍又一遍地使用 NPM 包时,我在我的 config/bootstrap.js 文件中添加了类似的内容:

module.exports.bootstrap = function(cb) {

  sails.Q = require('q');
  sails.url = require('url');
  ...

  cb();
};

我这样做是为了在任何 Controller 中使用像 Q 这样的包,而不必多次 require('q') 。我只是在需要时执行 sails.Q.[...] 。有没有更好的方法来实现同样的目标?我宁愿能够通过 Q.[...] 而不是 sails.Q.[...] 来引用该包。有谁知道更好的方法吗?

最佳答案

如果只是为了节省击键次数,您确实应该添加

var Q = require('q')

在您使用它的每个文件的顶部。 require() 不会每次都重新评估该模块。第一次调用后,调用它只是从缓存中获取模块的导出,因此每个文件使用一次它没有任何开销。

但是,如果您承认这是不好的做法并且对此表示同意,则可以将其导出到全局范围内,如下所示:

global.Q = require('q')

这将允许您从任何文件引用Q

关于javascript - Sails.js 全局引用一个包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36575540/

相关文章:

javascript - 如何替换node.js REDIS中已弃用的HMSET

javascript - 当构建脚本中使用 Babel 时,如何设置生产部署的依赖项?

javascript - Django-Jquery 循环遍历所有选项

javascript - 使用带有 javascript 的 gmail api 设置发件人姓名?

javascript - 在 JavaScript 中解析 OData 元数据

JavaScript/正则表达式 : strip first <p> if it matches a critheria

javascript - 并行 API 请求的异步模块错误

javascript - 如果我清理所有输入,是否需要输出转义?

windows - Chocolatey、npm 和 grunt-cli 安装问题

html - Node Sass 尚不支持您当前的环境 : Windows 64-bit with Unsupported runtime