0

每当我有一个“项目”时,我都有一个特定的代码块(forEach 循环)在我的代码库中到处使用。

如何将其重构为可以在需要时调用的模块或全局函数。

这是上下文:

Item.findById(itemid).populate('wants').exec(function(err, item){
        item.wants.forEach(function(person){
            person.avatar = gravatar.url(person.email, {size: 80, default: 'mm' });
        });

       //do some more stuff with item
});

我想在我有“项目”对象的其他地方重新使用这个 forEach 循环。我在想我传入 item 对象并再次返回它。

    item.wants.forEach(function(person){
        person.avatar = gravatar.url(person.email, {size: 80, default: 'mm' });
    });

就像是:

var myLib = require('./lib/myLib');
...
item = myLib.doStuff( item );
4

1 回答 1

0

您的./lib/myLib.js文件将如下所示:

module.exports.doStuff = function(item) {
    item.wants.forEach(function(person){
        person.avatar = gravatar.url(person.email, {size: 80, default: 'mm' });
    });
    return item;
}

然后,您可以像您已经概述的那样要求和使用:

var myLib = require('./lib/myLib');
item = myLib.doStuff( item );
于 2012-11-08T05:03:11.797 回答