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;
}

その後、すでに概説したようにrequireして使用できます。

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