1

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

$(搜索项)

所以代码看起来像

var $$ = require("myModule");

$$(搜索).doAction();

之类的,而不是

$$.doAction(搜索);

是否可以在模块中返回这样的“根函数”?这样做有什么危险吗?

------------------更新 Laurent 说它是可行的,就像 Underscore 一样,而且它是安全的,现在如何??------------ ----------------------

我已经将我的代码更新为我的模块,从一个自引用函数开始(复制的下划线)

(功能(){
var fs = 要求(“fs”);
    console.log("开始");
    var根=这个;
    var config =JSON.parse(fs.readFileSync("./config.json"));
    var $$ = 函数(obj){
        如果(!obj){
            返回配置;
        } 别的 {
            返回对象;
        }
    }
}).call(这个)

然后在我的js页面

要求(“我的模块”);
console.log($$("test"));

希望控制台会记录“测试”,但不幸的是我得到$$("test")的不是一个功能。 - - - - - - - - - - - - - - - - - - 更新 - - - - - - - ------------------------------ 正如 jtblin 在下面的答案中指出的那样,正在导出module.exports = $$用于输出“test”作为测试的作品传递给函数,但我不能按照原始示例链接方法。虽然有一部分。

4

2 回答 2

3

你导出你的函数了吗?

在您的模块中:

module.exports = $$;

在另一个文件中

var $$ = require("myModule");
console.log($$("test"));
于 2013-10-04T13:22:28.480 回答
2

Underscore是使用最广泛的 node.js 模块之一,它正是这样做的,所以它非常安全。

于 2013-10-04T08:15:15.380 回答