2010-11-25 16 views
9

समय-समय पर मुझे लगता है कि कॉमनजेएस http://www.commonjs.org/ मॉड्यूलर जावास्क्रिप्ट घटकों का एक सेट बनाने का प्रयास है, लेकिन स्पष्ट रूप से मैंने इसे कभी भी नहीं समझा है।कॉमनजेएस मॉड्यूल कहां हैं?

इन मॉड्यूलर घटकों का उपयोग मैं कहां कर सकता हूं? मैं उनके मुखपृष्ठ पर ज्यादा नहीं देखता हूं।

उत्तर

16

कॉमनजेएस केवल एक मानक है जो जावास्क्रिप्ट को मॉड्यूलर करने का एक तरीका निर्दिष्ट करता है, इसलिए कॉमनजेएस स्वयं जावास्क्रिप्ट पुस्तकालय प्रदान नहीं करता है।

CommonJS जो एक मॉड्यूल आयात और फिर उन्हें इस्तेमाल करते हैं, मॉड्यूल एक विशेष वैश्विक चर exports नामित जो एक वस्तु जो चीजें हैं जो निर्यात किया जाएगा रखती है की सुविधा देता है एक require() समारोह निर्दिष्ट करता है।

// foo.js ---------------- Example Foo module 
function Foo() { 
    this.bla = function() { 
     console.log('Hello World'); 
    } 
} 

exports.foo = Foo; 

// myawesomeprogram.js ---------------------- 
var foo = require('./foo'); // './' will require the module relative 
          // in this case foo.js is in the same directory as this .js file 
var test = new foo.Foo(); 
test.bla(); // logs 'Hello World' 

नोड.जेएस मानक पुस्तकालय और सभी तृतीय पक्ष पुस्तकालय उनके कोड को मॉड्यूलर करने के लिए कॉमनजेएस का उपयोग करते हैं।

एक और उदाहरण:

// require the http module from the standard library 
var http = require('http'); // no './' will look up the require paths to find the module 
var express = require('express'); // require the express.js framework (needs to be installed) 
+0

तो CommonJS बस की आवश्यकता को निर्दिष्ट करता है()? बस? जब आप इसके बारे में पढ़ रहे हों तो यह "बड़ा" लगता है :) – ajsie

+1

@ वेंड वेल यह मॉड्यूल सामग्री को समाहित करने के लिए एक अनाम रैपर फ़ंक्शन को भी परिभाषित करता है, लेकिन फिर से यह फ़ंक्शन कैसे कार्यान्वित करता है, कार्यान्वयन के लिए छोड़ दिया जाता है, 'आवश्यकता' फ़ंक्शन और 'निर्यात' ऑब्जेक्ट वह सब कुछ है जो कार्यान्वयन को साझा करना है। तो हाँ, यह उनकी साइट पर सभी विनिर्देशों और मानकों के साथ बहुत बड़ा लगता है: डी –

+0

तो सामान्य जेएस निर्यात करने का एक तरीका है जो अधिकांश पुस्तकालयों को अपनाया जाता है? यह कोड के व्युत्पन्न टुकड़े से नहीं है, लेकिन बिना किसी इंस्टॉलेशन के जेएस के साथ किसी भी समय इस्तेमाल किया जा सकता है? – stackjlei

1

विचार, ऐसा लगता है (मैं इस के बारे में पता नहीं था), बस वेब ब्राउज़र की तुलना में अधिक के लिए जावास्क्रिप्ट प्रदान करना है। उदाहरण के लिए, CouchDB क्वेरीिंग के लिए जावास्क्रिप्ट का समर्थन करता है।

0

कॉमनजेएस एक मॉड्यूल नहीं है, यह सिर्फ एक विनिर्देश है जो परिभाषित करता है कि दो जावास्क्रिप्ट मॉड्यूल को एक-दूसरे के साथ संवाद कैसे करना चाहिए। यह विनिर्देश निर्यात चर का उपयोग करता है और यह परिभाषित करने के लिए फ़ंक्शन की आवश्यकता होती है कि मॉड्यूल कैसे प्रकट होंगे और एक-दूसरे का उपभोग करेंगे।

कॉमनजेएस स्पेक को लागू करने के लिए हमारे पास ओपन सोर्स जेएस फ्रेमवर्क हैं जो कॉमनजेएस स्पेक का पालन करते हैं। जेएस लोडर के कुछ उदाहरण सिस्टमजेएस, वेबपैक, RequJS और इसी तरह हैं। नीचे एक साधारण वीडियो है जो कॉमनजेएस बताता है और यह भी दिखाता है कि सिस्टम जेएस सामान्य जेएस स्पेक को कैसे लागू करता है।

आम जे एस वीडियो: - https://www.youtube.com/watch?v=jN4IM5tp1SE

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