2016-03-28 32 views
1

Uygulamamın birinde istek modülü kullanıyorum. İstek yanıtındaki request session maxAge değerini yeniden yazmaya çalışıyorum. Ancak, çalışmıyor. req.sessionReq.session istekte tanımsız mı?

function testFunction (req, res) { 
    req.session.cookie.maxAge = 10000; // working 

    request(option, function(err, response, body, req) { 
     req.session.cookie.maxAge = body.maxAge; // session is undefined 
    }) 
} 

module.exports = { 
    testFunction: testFunction 
} 

cevap

0

özgün req değişkeni gölgelerimiz da ondan/istek yanıtının içinde tanımlanacak nasıl yapılır. Birini yeniden adlandırın, böylece çatışmazlar.

request(option, function(err, response, body, req_) { 
    req.session.cookie.maxAge = body.maxAge; // session is undefined 
}) 

Ya da sadece tamamen bu parametreyi kaldırın: Örneğin:

request(option, function(err, response, body) { 
    req.session.cookie.maxAge = body.maxAge; // session is undefined 
}) 
+0

Merhaba, oturum şimdi tanımlandı, ancak maalesef yeni oturum değeri mongodb olarak ayarlanmadı. "Req.session.cookie.maxAge" istek dışındaysa çalışır – stackdisplay

0

burada request operasyon eşzamanlı olmayan bir davranıştır. Db işleminizi request geri arama içine koymanız gerekebilir. Veya asenkron olarak da hareket etmek için testFunction'u revize edin. Örneğin, bir Promise, vb. Veriniz.