Mongoose を使用して mongoDB から項目を読み取る関数を作成しました。呼び出し元に結果を返したいと思います。
ecommerceSchema.methods.GetItemBySku = function (req, res) {
var InventoryItemModel = EntityCache.InventoryItem;
var myItem;
InventoryItemModel.findOne({'Sku' : req.query.sku}, function (err, item) {
// the result is in item
myItem = item;
//return item doesn't work here!!!!
});
//the value of "myItem" is undefined because nodejs's non-blocking feature
return myItem;
};
ただし、ご覧のとおり、結果は「findOne」のコールバック関数でのみ有効です。コールバック関数で処理を行う代わりに、「item」の値を呼び出し元関数に返す必要があるだけです。これを行う方法はありますか?
どうもありがとうございました!