从节点模块获取像sytax的jQuery

我正在构build我的第一个节点模块,我希望能得到类似于jQuery的东西

 $(searchItem)

所以代码可能看起来像

 var $$ = require(“myModule”);

 $$(search).doAction();

等等,而不是

 。$$ doAction(search);

是否有可能在模块中返回这样的“根函数”? 这样做有没有危险?

——————更新Laurent说这是可行的,因为下划线是这样做的,而且它是安全的,现在是如何?? ———– ———————–

我已经更新我的代码到我的模块开始自我引用function(复制下划线)

 (function(){
 var fs = require(“fs”);
    的console.log( “开始”);
     var root = this;
     var config = JSON.parse(fs.readFileSync(“./ config.json”));
     var $$ = function(obj){
        如果(!OBJ){
            返回configuration;
         } else {
            返回obj;
         }
     }
 })调用(这)

然后在我的页面

要求( “MyModule的”);
的console.log($$( “testing”));

希望控制台会logging“testing”,但不幸的是我得到$$("test")不是一个函数。 ———————————— update ————- ——————————正如jtblin在下面的答案中指出的,exporting module.exports = $$适用于输出“testing“作为testing正在被传递给函数,但我不能按照原始示例链接方法。 虽然部分方式。

你有导出你的function?

在你的模块中:

 module.exports = $$; 

在另一个文件中

 var $$ = require("myModule"); console.log($$("test")); 

Underscore是最广泛使用的node.js模块之一,它确实如此,所以它非常安全。