从节点模块获取类似sytax的jquery

时间:2013-10-04 06:12:09

标签: node.js node-modules

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

$(searchItem)

因此代码看起来像

var $$ = require("myModule");

$$(search).doAction();

等,而不是

$$.doAction(search);

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

------------------更新Laurent说它是可行的,因为Underscore会这样做,并且它是安全的,现在是如何做到的?-------- --------------------------

我已经将代码更新到我的模块,从自引用功能开始(复制下划线)

(function(){
var fs = require("fs");
    console.log("starting");
    var root = this;
    var config =JSON.parse(fs.readFileSync("./config.json"));
    var $$ = function(obj){
        if(!obj){
            return config;
        } else {
            return obj;
        }
    }
}).call(this)

然后在我的js页面

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

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

2 个答案:

答案 0 :(得分:3)

你导出了你的功能吗?

在你的模块中:

module.exports = $$;

在另一个档案中

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

答案 1 :(得分:2)

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