我有一个类别列表,需要从整个应用程序中多个位置的数据库中进行选择。

到目前为止,自使用以来,我一直在将查询返回到回调链中。

我只想在一个位置上抓取它,以便在需要修改时将它设为DRY。

基本上:

function() {
    var categoryList = {};
    var Category = Parse.Object.extend("Category");
    var categoryQuery = new Parse.Query(Category);
    categoryQuery.find(function(categories) {

        categories.forEach(function(item) {
            item=item.toJSON();
            categoryList[item.objectId] = item.Name;
        });

    });

    return categoryList;
}


但是我不确定将其放置在何处,而且我意识到将它写入那里的方式categoryList将为空。我如何创建一个辅助函数,以提供可以在任何地方使用的结果?

我以为可以将其放在外部文件中并使用require,但我尝试了以下操作:

module.exports = {};
module.exports = function(fn) {

    <code>

    fn['categoryList'] = categoryList;

    return fn;
}(module.exports);


那似乎没有用。我将require放到app.js中,每次包含它时,解析都会说“更新失败,无法加载触发器”。

我很困惑,对节点/解析很陌生。有人可以帮忙吗?

谢谢。

最佳答案

选项1

helper.js

var lib = require('lib');

// exports functions
exports.help_a = function (...) { };
exports.help_b = function (...) { };


app.js

// imports heplers functions
helper = require('./helper.js');

//call
helper.help_a(...);
helper.help_a(...);




选项2

helper.js

// exports module as function
module.exports = function (...) { };


app.js

helper = require('./helper.js');
helper(...);

09-12 00:05