2013-07-20 7 views
8

क्या एक मिडलवेयर लिखना संभव है जो क्लाइंट को प्रतिक्रिया भेजने के बाद निष्पादित करता है या अनुरोध के बाद संसाधित किया जाता है और ग्राहक को प्रतिक्रिया भेजने से पहले ही बुलाया जाता है?क्लाइंट को प्रतिक्रिया भेजने के बाद निष्पादित/कनेक्ट मिडलवेयर

उत्तर

13

pauljz बुनियादी विधि लेकिन यह है कि यहां पर विस्तार करने के लिए दे दिया मिडलवेयर

module.exports = function() { 
    return function(req, res, next) { 
    req.on("end", function() { 
     // some code to be executed after another middleware 
     // does some stuff 
    }); 
    next(); // move onto next middleware 
    } 
} 

का एक उदाहरण अपने मुख्य अनुप्रयोग में

expressApp.use(require("./doneMiddleware")); 
expressApp.use(express.logger()); 
expressApp.use(express.static..... 
+0

यदि मैं सही ढंग से समझता हूं, तो यह ईवेंट तब ट्रिगर होगा जब क्लाइंट सर्वर पर अनुरोध/डेटा भेजता है। लेकिन मैं क्या चाहता हूं, प्रतिक्रिया.रेंडर या प्रतिक्रिया.रेरेक्ट इत्यादि को कॉल करने के बाद, मध्यम बर्तन को निष्पादित किया जाना चाहिए। –

+1

नहीं, प्रतिक्रिया भेजने सहित पूरे अनुरोध किए जाने के बाद यह ईवेंट उत्सर्जित हो जाता है। जब तक कॉल प्रतिक्रिया प्रस्तुत/पुनर्निर्देशित करें। संबंधित अनुरोध अंत समाप्त हो जाएगा। –

+0

@ सेल्वराजमा निम्नलिखित दृष्टिकोण बेहतर हो सकता है: http://stackoverflow.com/a/21858212/673014। – pronskiy

3

देखें कि req.on('end', function() {...}); पर बाध्यकारी आपके लिए काम करेगा या नहीं।

+0

अगर मैं सही ढंग से समझ, इस घटना को जब ग्राहक को पूरा करता है ट्रिगर किया जाएगा है सर्वर पर अनुरोध/डेटा भेजना। लेकिन मैं क्या चाहता हूं, प्रतिक्रिया.रेंडर या प्रतिक्रिया.रेरेक्ट इत्यादि को कॉल करने के बाद, मध्यम बर्तन को निष्पादित किया जाना चाहिए। –

संबंधित मुद्दे