我正在构建我的第一个节点模块,我希望得到类似于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”,因为测试正在传递给函数,但我不能按照原始示例链接方法。尽管如此。
答案 0 :(得分:3)
你导出了你的功能吗?
在你的模块中:
module.exports = $$;
在另一个档案中
var $$ = require("myModule");
console.log($$("test"));
答案 1 :(得分:2)
Underscore是使用最广泛的node.js模块之一,它确实如此,所以它非常安全。