节点JS需要没有变量
Node JS require without var
{这与Twitter无关}
这是一个有趣的问题,有趣的是它可能很愚蠢,你可以笑,但我至少会有一个答案来解决这个该死的问题。
目前我使用
var Bootstrap = require('library/Bootstrap');
Bootstrap.run();
如果我能在Bootstrap index.js 中做这样的事情,什么时候才是真正伟大的
module.exports.Bootstrap = My_Bootstrap;
随意地称之为
require('library/Bootstrap');
Bootstrap.run();
在不必向我的空间声明另一个变量的情况下,有没有办法做到这一点,或者我盯着屏幕想,做梦,迷路,回来浪费时间?
编辑所以这就是我最后所做的:
我创建了一个全局对象,只向其中添加了重要的模块,以便可以访问和实例化它们。这是一个惊人的答案和解决方案,非常方便
您可以直接修改global
对象。这类似于浏览器上的窗口对象。因此,您可以为您的模块编写一个包装器,如下所示:
global.Bootstrap = My_Bootstrap
全局对象在模块之间共享。然后,无论身在何处,都可以使用Bootstrap
。
不,您必须声明变量。不过,您可以进入require
函数,让它为您完成工作。我不太熟悉Bootstrap的内部架构,但它似乎应该这样做:
// put this in some out-of-the-way cubbyhole somewhere
var oldRequire = require;
function require(path) {
Bootstrap = oldRequire(path);
}
// and this would go in your main file
require("library/Bootstrap");
Bootstrap.run();
你不能按照你说的方式来做,这意味着全局,这几乎肯定不是你想要的。
然而,你能做的是:
require('your_library').call(this,arg1,arg2);
例如,您可以使用节点验证器库。
你打算像这样使用它:
sanitize = require('validator').sanitize
var str = sanitize('aaaaaaaaab').ltrim('a');
但你可以跳过所有这些并进行
var str = require('validator').sanitize('aaaaaaaaab').ltrim('a')
据我所知,这样做在内存/速度方面都没有负面影响。
在你的具体情况下,你知道你可以跳过一点。。。
文件:MyBootStrap.js
Module.exports = MyBootstrap
文件:index.js(或其他)
require('library/Bootstrap.js')()
相关文章:
- 等待函数完成,然后将返回值分配给变量JS
- 节点中的变量.js JavaScript 不会改变
- 如何在 Node 中访问模块全局变量.js例如浏览器中的 window.variable
- 在角度中使用父范围变量.js
- 在重新声明变量 (JS) 时遇到了问题
- 在主干中使用全局变量.js .最佳实践
- 在节点中使用变量.js mysql-node 查询
- 如果变量 JS 太高,则启动/停止反转
- 变量 Js 在 PHP 代码中不起作用
- 无法使用车把正确在我的“模板”中显示变量.js
- 引导程序中的全局变量.js在 Firefox for Android 扩展中
- Webstorm 中的“未解析变量 JS”
- 变量JS的子字符串值
- 动态更新变量JS
- 不能用一个主变量访问单个变量[jS]
- 创建全局变量js
- 当不同的函数需要从数据库调用数据时,如何避免使用全局变量.(JS)
- 变量JS中的变量
- 本地存储变量js
- 为循环追加变量js