होमवर्क किया:यूआरएल मार्ग
How do I get started with Node.js [closed]
Backstory: मैं कोशिश करते हैं और अपने खुद के ढांचे लिखना चाहते थे, लेकिन मैं कुछ मुसीबतों में चल रहा हूँ , पूरी तरह से इसे समझने की वजह से सबसे अधिक संभावना है।
var app = require('./app'); //this part is understood and it works in my current code.
app.get('/someUrl', function(){ //do stuff here });
app.post('/someOtherUrl', function(){ //do stuff here });
मैं एक्सप्रेस-ढांचे यह एक ही वाक्य रचना है, लेकिन उनके स्रोत कोड को पढ़ने अभी भी मुझे eludes इस बात का पता है:
क्या मैं हासिल करना चाहते हैं एक वाक्य रचना है कि इस तरह दिखता है।
यह हासिल करने के लिए एक छोटा सा काम हो सकता है लेकिन मैं इसे अभी भी उत्पादित नहीं कर सकता हूं।
एप्लिकेशन में गहरी फ़ाइल में require('./app');
पर प्रयास करने के लिए एक अपरिभाषित ऑब्जेक्ट उत्पन्न करता है, इसलिए मुझे लगता है कि एक सर्वर एक सिंगलटन ऑब्जेक्ट है।
तो मैंने क्या प्रयास किया है?
मेरा वर्तमान कोड इस तरह दिखता है, और किसी भी तरह मुझे ऐसा लगता है कि यह जाने का तरीका है, लेकिन मैं स्पष्ट रूप से ऐसा नहीं कर सकता।
मैं इसे अधिक पढ़ने योग्य रखने के लिए सभी require();
कथन छोड़ रहा हूं।
server.js:
var app = module.exports = {
preProcess: function onRequest(request, response){
processor.preRequest(request); //this object adds methods on the request object
var path = urllib.parse(request.url).pathname;
router.route(urls, path, request, response);
},
createServer: function() {
console.log("Server start up done.");
return this.server = http.createServer(this.preProcess);
}
};
exports.app = app;
लेखन मैं एक get()
विधि के साथ इस वस्तु को विस्तार के साथ प्रयोग कर रहा हूँ के समय।
index.js:
var app = require('./server');
app.createServer().listen('1337');
router.route()
बिट मूल रूप से अनुरोध आगे आवेदन में भेजता है और router.js-फाइल के अंदर मैं एक समारोह के नक्शे कि के लिए आगे अनुरोध कुछ जादू और मार्ग करना (अब तक)/urlThatWasRequested
यह वह व्यवहार है जिसे मैं पीछे छोड़ना चाहता हूं। मुझे पता है कि यह एक बहुत लंबा आदेश हो सकता है लेकिन मेरा सभी कोड आसानी से त्याग दिया जा सकता है और मुझे पूरे कोडबेस को फिर से लिखने से डर नहीं है क्योंकि यह मेरा स्वयं का प्रोजेक्ट है।
मुझे आशा है कि यह मेरे प्रश्न को अन्यथा समझाने में पर्याप्त है, कृपया यह कहें कि इसे थोड़ा और स्पष्ट करने के लिए मुझे क्या जोड़ना चाहिए।
अग्रिम धन्यवाद!
1) आप एक परिपत्र संदर्भ यहाँ पैदा कर रहे:
var app = module.exports = {
// some other code
}
exports.app = app;
आप की एक संपत्ति के रूप में app
जोड़ने
उत्तर के लिए धन्यवाद! :) मेरा सवाल था "एक .get(), .post() वाक्यविन्यास कैसे उत्पन्न करें"। मुझे सवाल बदलना पड़ सकता है। इस परियोजना में वरीयता के कारण मैं खुद ही कार्य में प्राप्त/पोस्ट की जांच करने से बचना चाहता हूं। मुझे सही दिशा बताने के लिए धन्यवाद! :) इसके अलावा मेरे पास एक हैंडलर-फ़ाइल है जहां मैं बहुत सारे हैंडलर जोड़ता हूं जो एक ही नाम से फ़ंक्शंस में मैप करते हैं, मुझे यकीन नहीं है कि यह स्पष्ट किया गया है या नहीं। –
@limelights मैं देखता हूं। मैंने जवाब अपडेट कर लिया है! – freakish
यह एक पूरी तरह से मूर्ख सवाल हो सकता है लेकिन हैंडलर संपत्ति स्थापित नहीं है, यह सिर्फ अपरिभाषित है। –