2012-04-15 8 views
10

सबसे पहले मैं नोडज के लिए नया हूं और दूसरा नीचे मेरा प्रश्न है। जेड में nodejs नेट मॉड्यूल को शामिल करने के लिए जो HTML में लोड किया गया है ??एचटीएमएल फाइलों में नोडजेड मॉड्यूल कैसे शामिल करें?

मेरी जेएस फ़ाइल इस तरह दिखती है।

net = require('net'); 
var client = net.createConnection(8000, '192.168.15.59'); 
client.on('connect',function(){ 
console.log('Connected To Server'); 
}); 
client.on('data',function(data){ 
console.log('Incoming data:; ' + data); 
}); 

और मेरी html फ़ाइल यह त्रुटि नीचे देता है जब मैं ब्राउज़र में HTML फ़ाइल को चलाने के नीचे

<html> 
<head> 
<script type="text/javascript" src="sample.js"></script> 
<script type="text/javascript"> 
function displaymessage(message) 
{ 
alert(message); 
client.write(message, encoding='utf8') 
} 
</script> 
</head> 

<body> 
<form> 
<input type="text" id="msg"></input> 
<input type="button" value="Click me!" onclick="displaymessage(document.getElementById('msg').value)" /> 
</form> 
</body> 
</html> 

है

Uncaught ReferenceError: require is not defined

जबकि अगर मैं js NodeJS में सीधे फ़ाइल को चलाने (कमांड लाइन का उपयोग करके इस "नोड sample.js) की तरह यह ठीक काम करता है।

अग्रिम धन्यवाद।

+7

नोडजेएस ** सर्वर ** पर चलता है। एचटीएमएल फाइलों के अंदर स्क्रिप्ट ** क्लाइंट ** पर चलता है। आप क्लाइंट पर सर्वर कोड शामिल नहीं करते हैं। इसके बजाय, आप क्लाइंट से सर्वर कोड पर * संदेश * भेजते हैं, और परिणामों की व्याख्या करते हैं। –

उत्तर

2

यह स्पष्ट करने के लिए कि @ टीजेड्रोडर ने टिप्पणी में क्या कहा: आप जो करने की कोशिश कर रहे हैं वह असंभव है।

नोडजेएस एक सर्वर-साइड फ्रेमवर्क है। आपके द्वारा NodeJS में लिखने वाली जावास्क्रिप्ट सर्वर पर निष्पादित की जाती है। आपके HTML पृष्ठों के लिए लिखने वाली जावास्क्रिप्ट क्लाइंट पर निष्पादित की जाती है। ग्राहक और सर्वर एक-दूसरे के तरीकों को सीधे कॉल नहीं कर सकते हैं। AJAX और अन्य एसिंक्रोनस क्लाइंट-सर्वर संचार तकनीकों का उपयोग इस प्रकार किया जाता है।

+2

मैं आभारी हूं यदि आप ऐसे उदाहरणों के लिए कोई लिंक प्रदान कर सकते हैं जहां मुझे सर्वर/क्लाइंट के बीच ऐसा संचार मिल सकता है। –

+2

https://www.google.com/search?q=ajax+with+node+js –

11

नोडजेएस सर्वर पर चलता है। एचटीएमएल फाइलों के अंदर स्क्रिप्ट क्लाइंट पर चलता है। आप क्लाइंट पर सर्वर कोड शामिल नहीं करते हैं। इसके बजाय, आप क्लाइंट से सर्वर कोड पर संदेश भेजते हैं, और परिणामों की व्याख्या करते हैं। तो ऐसा करने का मानक तरीका उस सर्वर पर संसाधन को परिभाषित करना है जो उस सामग्री या डेटा को उत्पन्न करता है जिसे आप उत्पन्न करना चाहते हैं, और सामान्य पृष्ठ लोडिंग या "ajax" का उपयोग करके उस सामग्री या क्लाइंट से डेटा पुनर्प्राप्त करने के लिए (हालांकि इन दिनों , अधिकांश लोग "एक्स" [एक्सएमएल] "एजेक्स" [कुछ अभी भी करते हैं] में उपयोग नहीं करते हैं, वे JSON, टेक्स्ट, या एचटीएमएल का उपयोग करते हैं)।

+0

क्या आप ऐसे उदाहरणों के लिए कोई लिंक प्रदान कर सकते हैं जहां मुझे सर्वर/क्लाइंट –

+1

@FarooqArshed के बीच ऐसा संचार मिल सकता है: यह करना मुश्किल है खोज AJAX उदाहरणों पर ट्राइप किए बिना वेब प्रोग्रामिंग से संबंधित है। यह सचमुच चेरी के लिए एक असहमति होगी-उन्हें आपके लिए उठाओ। –

+0

@ tj-crowder यदि आपके पास एक मॉड्यूल है जिसे आप बैकएंड (node.js के माध्यम से) और फ्रंट एंड (एचटीएमएल में स्क्रिप्ट के साथ) पर भी उपयोग करना चाहते हैं, तो आप दो संस्करणों को बनाए रखना नहीं चाहते हैं - आप बस दोनों मामलों के लिए एक .js फ़ाइल रखना चाहते हैं। समस्या यह है कि नोड संस्करण में निर्यात/आवश्यकता होती है जो क्लाइंट कोड पर त्रुटियों को ट्रिगर करता है। [यह सवाल] देखें (http: // stackoverflow।कॉम/प्रश्न/14532071/सहित- जेएस-फाइल-एचटीएमएल-एंड-नोड-जेएस के साथ) – wcochran

1

कारण "आवश्यकता परिभाषित नहीं है" कारण है क्योंकि "आवश्यकता" node.js का एक कीवर्ड है, लेकिन यह ब्राउज़र में कोई कीवर्ड नहीं है।

नोड.जेएस जावास्क्रिप्ट के लिए वर्चुअल मशीन (या चल रहा संदर्भ) है, ब्राउज़र जावास्क्रिप्ट के लिए वर्चुअल मशीन भी है। लेकिन वे बेहद अलग हैं। आप किसी वर्चुअल मशीन में किसी वर्चुअल मशीन में समर्थित वर्चुअल मशीन का उपयोग नहीं कर सकते हैं, जैसे कि आप विंडोज और लिनक्स दोनों पर सी/सी ++ का उपयोग कर सकते हैं, लेकिन कई पुस्तकालय हैं जो या तो केवल लिनक्स में हैं या केवल विंडोज़ हैं।

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