13
मान लीजिए कि मेरे पास मिडलवेयर है;एक्सप्रेस/कनेक्ट मिडलवेयर से अनुरोध "समाप्त" करने का सही तरीका क्या है?
var express = require('express');
var app = express();
app.use(function (req, res, next) {
var host = "example.com";
if (req.host !== host) {
res.redirect(301, host + req.originalUrl);
res.end();
}
});
मुझे यहां किस तरह के नियमों का पालन करने की आवश्यकता है?
- क्या मुझे
res.end()
पर कॉल करना चाहिए? (याres.redirect()
मेरे लिए यह करें?) - क्या मुझे
next()
पर कॉल करना चाहिए? (या कनेक्ट करता है सफाई से अनुरोध समाप्त हो गया है और बाहर निकलने का पता लगाने?) - यह मानते हुए कि मैं चाहिए
next()
बुला सकता है, मुझे लगता है कि इसका मतलब है कि मैं कर सकते हैं मेरी मिडलवेयर के लिए संभावित रूप से प्राप्त हो अनुरोध जो पहले से ही अन्य द्वारा समाप्त किया गया हो सकता श्रृंखला में मिडलवेयर उच्च; मैं इसके खिलाफ खुद को कैसे बचा सकता हूं?
कुछ ध्यान देने योग्य यह है कि यदि आपके पास अन्य प्रसंस्करण करने के लिए आप अभी भी कॉल कर सकते हैं, तो ध्यान रखें कि आपने एक प्रतिक्रिया भेजी है ताकि प्रतिक्रिया ऑब्जेक्ट समाप्त हो और पोस्ट-प्रतिक्रिया प्रोसेसिंग के लिए काफी अधिक चर हो। यह उपयोगी है जहां आप एक प्रतिक्रिया भेजना चाहते हैं और फिर अन्य धीमी परिचालन करते हैं जैसे आंकड़ों को ट्रैक करने या ईमेल भेजने के लिए अन्य सर्वरों के साथ संचार करना, या चीजों को कतार में धक्का देना या डेटाबेस या आदि से बात करना, तो वास्तव में एक एक्सप्रेस समाप्त करना अनुरोध/प्रतिक्रिया श्रृंखला तब होती है जब आप अब मिडलवेयर नहीं कॉल करते हैं और इसे कचरा इकट्ठा किया जाता है। –