कौन सा ORM मुझे Node.js और MySQL के लिए उपयोग करना चाहिए? [बन्द है]


326

मैं Node.js. का उपयोग करने के लिए एक परियोजना का पुनर्लेखन कर रहा हूँ मैं MySQL को DB के रूप में उपयोग करना जारी रखना चाहता हूं (भले ही मुझे स्कीमा को फिर से लिखने में कोई आपत्ति नहीं है)। मैं एक साधारण-से-उपयोग, उचित-प्रदर्शन ORM की तलाश में हूं, जो कैशिंग, कई-से-एक और कई-कई संबंधों का समर्थन करता है। MySQL ORM से मुझे मिल सकता है, दृढ़ता और अगली कड़ी सबसे परिपक्व लगती हैं। क्या आपके पास कोई अनुभव है? मेरे फैसले में संबंधित पेशेवरों और विपक्ष को क्या पता होना चाहिए?


लेकिन यह बहुत दिलचस्प विषय है। क्या आप अपनी साइट पर डेटा बदलने के लिए तृतीय-पक्ष डेवलपर्स तक पहुंच प्राप्त करना चाहेंगे? इंटरमीडिएट जेएस लाइब्रेरी बनाने के लिए बेहतर विचार हो सकता है जो बैकएंड के लिए अनुरोध पैरामीटर (मेटा भाषा) भेजता है?
सर्जक

2
@sergzach देखभाल विस्तृत करने के लिए? "हाइबरनेट कैशिंग" के लिए Google।
पोन्ज़ाओ

एचएम ... कुछ साइटें उपयोगकर्ता एप्लिकेशन की अनुमति देती हैं। या मैं आपको समझ नहीं पाया, कृपया मुझे क्षमा करें।
सर्जक

2
@sergzach: कैशिंग वास्तव में कई ओआरएम समाधानों की एक प्रमुख विशेषता है। उदाहरण के लिए केयेन को देखें।
नैट सीके

जवाबों:


101

क्या मैं नोड ORM का सुझाव दे सकता हूं

https://github.com/dresende/node-orm2

रीडमी पर प्रलेखन है, MySQL, PostgreSQL और SQLite का समर्थन करता है।

MongoDB संस्करण 2.1.x के बाद से उपलब्ध है (जुलाई 2013 में जारी)

अद्यतन: यह पैकेज अब प्रोजेक्ट की README के ​​अनुसार नहीं है। इसके बजाय वह बुकशेल्फ़ और सीक्वल की सिफारिश करती है


27
डॉक्स के आधार पर ऐसा लगता है कि सीक्वेलाइज इस परियोजना से आगे का रास्ता है।
टोनी ओ'हागन

यह mysql ORM की तलाश कर रहे लोगों के लिए एक और बढ़िया विकल्प है। वाक्य-विन्यास अधिक जटिल है, लेकिन अच्छा भी है।
dresende

2
परियोजना ने URL बदल दिया है: github.com/dresende/node-orm2
Capy

जब मैं इसे लागू करने का प्रयास करता हूं तो मुझे यह "त्रुटि: त्रुटि: मॉड्यूल 'हैट' नहीं मिल रही है। .. npm की कोई राशि स्थापित या पुनः स्थापित करने में मदद नहीं लगती है। कोई सुझाव? धन्यवाद
जीन बो

1
नोड-ओआरएम 2 अब सक्रिय रूप से बनाए नहीं रखा गया है। यह सीक्वल और बुकशेल्फ़.जेएस से जोड़ता है।
Seebiscuit

150

मैं इसे उत्कृष्ट प्रलेखन के कारण सीक्वेलाइज़ चुनूंगा । यह सिर्फ एक ईमानदार राय है (मैंने वास्तव में MySQL का इस्तेमाल नोड के साथ कभी नहीं किया है)।


10
मैं यह भी कहना चाहूंगा कि नोड- orm2 या हठ। js एक माइग्रेशन तंत्र प्रदान नहीं करते हैं। दृढ़ता .js पोस्टग्रेट्स का समर्थन नहीं करता है। सीक्वल इन दोनों चीजों को करता है।
airtonix

4
मैंने नोड- orm2 का इस्तेमाल किया और सीक्वेलाइज़ के बेहतर डॉक्यूमेंटेशन के कारण मैं इसे प्राप्त कर सका और इसे बहुत आसान बना पाया
माइकल जे। काल्किंस

2
@Gelidus आपको यह जानकारी कहां से मिली?
विलियम लेपिंस्की

14
अफसोस की बात है, हाल ही में Sequelize प्रलेखन भयानक हो गया है। मैंने हाल ही में Sequelize का उपयोग करना शुरू किया और डॉक्स से काफी प्रसन्न था। अब यह टूटी हुई लिंक, पुरानी जानकारी, और अधूरे उदाहरणों का एक ऑटो-जनरेट ढेर है। मैं अभी भी इसके साथ रहना होगा। यह सीखना मुश्किल नहीं है।
ब्रैड

2
बस मेरी पुरानी टिप्पणी को हटा दिया गया है और मैं अब 100% सहमत हूँ @ ब्रैड के साथ, दुर्भाग्य से :(
एंड्री पोपोव

19

सबसे पहले, कृपया ध्यान दें कि मैंने उनमें से किसी का उपयोग नहीं किया है (लेकिन Node.js का उपयोग किया है)।

दोनों पुस्तकालयों को काफी अच्छी तरह से प्रलेखित किया गया है और एक स्थिर एपीआई है। हालाँकि, persistence.js अधिक परियोजनाओं में उपयोग किया जा रहा है । मुझे नहीं पता कि वे सभी अभी भी इसका उपयोग करते हैं, हालांकि।

डेवलपर कभी-कभी ब्लॉग के बारे में blog.depold.com पर इसका सीक्वल बनाते हैं । जब आप प्राथमिक कुंजियों को विदेशी कुंजियों के रूप में उपयोग करना चाहते हैं, तो आपको इस ब्लॉग पोस्ट में वर्णित पैच की आवश्यकता होगी । यदि आप दृढ़ता के लिए मदद चाहते हैं। तो इसके लिए समर्पित एक Google समूह है।

उदाहरणों से मैं इकट्ठा करता हूं कि सीक्वेंस ज़बरदस्ती की तुलना में कुछ अधिक जावास्क्रिप्ट-जैसे (अधिक चीनी) है, लेकिन कम डेटास्टोर्स (केवल MySQL) के लिए समर्थन है, जबकि persistance.js भी ब्राउज़र स्टोर में उपयोग कर सकते हैं)।

मुझे लगता है कि अगली कड़ी आपके लिए जाने का रास्ता हो सकती है, क्योंकि आपको केवल MySQL के समर्थन की आवश्यकता है। हालाँकि, यदि आपको कुछ सुविधाजनक सुविधाओं की आवश्यकता है (उदाहरण के लिए खोज) या बाद में एक अलग डेटाबेस का उपयोग करना चाहते हैं, तो आपको हठ.जे का उपयोग करने की आवश्यकता होगी।


1
लगता है जैसे persistencejs.org अब कुछ अवांछित साइट की ओर इशारा कर रहा है, केवल GitHub काम कर रहा है
sansknwoledge

10

Sequelize और Persistence.js के बीच एक प्रमुख अंतर यह है कि पूर्व एक STRINGडेटाटाइप का समर्थन करता है , अर्थात VARCHAR(255)। मुझे वास्तव में सब कुछ बनाने में असहजता महसूस हुई TEXT


7
वर्तमान में Pers.ence.js VARCHAR को भी दबा देती है।
एलेरो

8
PostgreSQL, TEXT और VARCHAR जैसे डेटाबेस में बिल्कुल समान हैं, फर्क सिर्फ इतना है कि अगर आप बाइट लिमिट (VARCHAR (255)) डालते हैं तो आपके पास लिमिट चेक करने के लिए एक ओवरहेड है। PostgreSQL में सब कुछ के लिए TEXT का उपयोग करने में कोई समस्या नहीं है।
फिर से लिखा

3
PostgreSQL में TEXT का उपयोग करना वास्तव में बेहतर अभ्यास है, भले ही यह पोर्टेबल न हो।
काउबर्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.