2011-03-21 14 views
108

मुझे node.js. में next का बहुत उपयोग दिखाई देता है।जावास्क्रिप्ट node.js अगला()

यह क्या है, यह कहां से आता है? यह क्या करता है? क्या मैं इसे क्लाइंट साइड का उपयोग कर सकता हूं? loadUser समारोह के लिए http://dailyjs.com/2010/12/06/node-tutorial-5/

देखो:

क्षमा करें यह उदाहरण यहाँ प्रयोग किया जाता है।

+0

मैंने इसे कहीं भी नहीं देखा है, और इसे दस्तावेज़ में कहीं भी संदर्भित नहीं किया गया है। क्या आप सुनिश्चित हैं कि इसे उस कोड बेस में कहीं परिभाषित नहीं किया गया है जिसे आप देख रहे हैं? –

+0

यह बहुत अस्पष्ट है। क्या आप संदर्भ का एक उदाहरण दे सकते हैं। – Raynos

उत्तर

88

यह नोड.जेएस नियंत्रण-प्रवाह कोड में एक परिवर्तनीय नामकरण सम्मेलन प्रतीत होता है, जहां इसे निष्पादित करने के लिए अगले कार्य का संदर्भ कॉलबैक को दिया जाता है जब इसे पूरा किया जाता है।

उदाहरण के लिए देखें, कोड यहाँ नमूने:

के उदाहरण आप पोस्ट पर नजर डालते हैं:

function loadUser(req, res, next) { 
    if (req.session.user_id) { 
    User.findById(req.session.user_id, function(user) { 
     if (user) { 
     req.currentUser = user; 
     return next(); 
     } else { 
     res.redirect('/sessions/new'); 
     } 
    }); 
    } else { 
    res.redirect('/sessions/new'); 
    } 
} 

app.get('/documents.:format?', loadUser, function(req, res) { 
    // ... 
}); 

loadUser समारोह में एक समारोह को उम्मीद है अपनी तीसरा तर्क, जो next नाम से जुड़ा हुआ है। यह एक सामान्य कार्य पैरामीटर है। यह करने के लिए अगली कार्रवाई का संदर्भ रखता है और इसे एक बार loadUser कहा जाता है (जब तक कोई उपयोगकर्ता नहीं मिला)।

इस उदाहरण में next नाम के बारे में कुछ खास नहीं है; हम इसे कुछ भी नाम दे सकते थे।

+0

यह express.js में भी बहुत उपयोग किया जाता है लेकिन यह '.next()' नहीं है। वह किसी वस्तु पर एक विधि के रूप में 'अगली' के बारे में पूछता है। – Raynos

+1

'वापसी के लिए बेहतर();' –

+2

@RyanWalton मैं सहमत हूं –

31

यह उन स्थितियों में कॉलबैक पास करते समय सम्मेलन का नामकरण कर रहा है, जिन्हें क्रियाओं के क्रमिक निष्पादन की आवश्यकता होती है, उदा। निर्देशिका स्कैन करें -> फ़ाइल डेटा पढ़ें -> डेटा के साथ कुछ करें। यह कॉलबैक को गहराई से घोंसला करने की प्राथमिकता में है।

http://howtonode.org/control-flow-part-ii:

http://howtonode.org/control-flow

इसके अलावा कि पोस्टिंग के दूसरे भाग की अनुक्रमिक क्रिया खंड देखें: टिम कैसवेल के HowToNode ब्लॉग पर निम्नलिखित लेख के पहले तीन वर्गों इस का एक अच्छा सिंहावलोकन देने के

+1

धन्यवाद इस लिंक के लिए बहुत कुछ। यह nodejs –

+0

के साथ काम करना शुरू करते समय बहुत सारी चीजें बताता है लिंक अब काम नहीं कर रहा है। यह आंतरिक सर्वर त्रुटि – Deep

+0

इंटरनेट संग्रह से अद्यतन लिंक दे रहा है –

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