2012-04-10 9 views
11

मैं सरल डेटाबेस अबास्ट्रक्शन कार्यान्वयन के लिए चारों ओर देख रहा हूं, तो मुझे बहुत अच्छा लेख http://howtonode.org/express-mongodb मिला, जो पुराना है लेकिन मुझे अभी भी विचार पसंद है।Node.js डेटाबेस के लिए सार परत

शायद निर्माण, डेटाबेस सेटिंग्स के साथ किसी प्रकार का ऑब्जेक्ट शाब्दिक ले सकता है। इसलिए मुख्य विचार यह है कि उपयोगकर्ता सेवा के विभिन्न कार्यान्वयन हो सकते हैं, लेकिन विभिन्न निर्देशिकाओं में स्थित हैं और केवल आवश्यकतानुसार इसकी आवश्यकता होती है।

/data-layer/mongodb/user-service.js 
        /post-service.js 
        /comment-service.js 

/data-layer/couchdb/user-service.js 
        /post-service.js 
        /comment-service.js 

जब डाटाबेस की जरूरत है, मैं var UserService = require(__dirname + '/data-layer/mongodb/user-service).UserService(db); साथ इसे पाने के wil जहां var db = "open db object"

इस यह करना या वहाँ किसी भी बेहतर समाधान है करने के लिए सही तरीका क्या होगा?

+1

बहुत ही आशाजनक है JugglingDB: https://github.com/1602/jugglingdb यहां प्रलेखन: http: // jsdoc।जानकारी/1602/jugglingdb/ –

+0

आपको विचारों को प्राप्त करने के लिए यह एक अच्छी जगह मिल सकती है http://mongodb.github.com/node-mongodb-native/github/github.html – christkv

+1

[JSData] देखें (http: // www .js-data.io /)। – orad

उत्तर

11

वहाँ NPM के माध्यम से कुछ समाधान, उपलब्ध हैं:

  • Node-DBI: "नोड-DBI एक SQL डेटाबेस अमूर्त परत पुस्तकालय, दृढ़ता से पीएचपी Zend फ्रेमवर्क Zend_Db एपीआई से प्रेरित है यह काम करने के लिए एकीकृत कार्य करता है प्रदान करता है। एडाप्टर कक्षाओं के माध्यम से कई डेटाबेस इंजनों के साथ। इस समय, समर्थित इंजन mysql, mysql-libmysqlclient और sqlite3 "हैं। ऐसा लगता है कि विकास रोक दिया गया है।
  • Accessor: "डेटाबेस रैपर, डेटाबेस तक आसान पहुंच प्रदान करता है।" इस समय केवल MySQL और MongoDB का समर्थन करता है।
  • Activerecord: "कॉफ़ीस्क्रिप्ट में लिखा गया एक ओआरएम जो एकाधिक डेटाबेस सिस्टम (एसक्यूएल, नोएसक्यूएल, और यहां तक ​​कि आरईएसटी) का समर्थन करता है, साथ ही आईडी पीढ़ी के मिडलवेयर का समर्थन करता है। यह नई डेटाबेस सिस्टम और प्लगइन्स जोड़ने के लिए पूरी तरह से विस्तार योग्य है।"
7

मैं हालांकि यह एक पुराने सवाल का जवाब अद्यतन करने के लिए समय हो सकता है:

आप अपने document-oriented database के रूप में MongoDB उपयोग करना चाहते हैं, mongoose एक अच्छा विकल्प और (आधिकारिक साइट से उदाहरण) का उपयोग करने के लिए आसान है :

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 

var Cat = mongoose.model('Cat', { name: String }); 

var kitty = new Cat({ name: 'Zildjian' }); 
kitty.save(function (err) { 
    if (err) // ... 
    console.log('meow'); 
}); 

एक नहीं बल्कि आधुनिक दृष्टिकोण के लिए, Mongorito एक अच्छा ODM जो कॉलबैक के बजाय ES6 जनरेटर का उपयोग करता है।

06,2015 के रूप में मुझे लगता है कि SQL डेटाबेस Node.js/io.js साथ लिए अच्छी ORMSequelize निम्नलिखित डेटाबेस समर्थन कर रहा है:

  • PostgreSQL
  • MySQL
  • MariaDB
  • SQLite
  • MSSQL

सेटअप fairly easy है:

var sequelize = new Sequelize('database', 'username', 'password', { 
    host: 'localhost', 
    dialect: 'mysql' 
}); 

// Or you can simply use a connection uri 
var sequelize = new Sequelize('postgres://user:[email protected]:5432/dbname'); 

यह भी transactions, migrations और कई अन्य उपहार प्रदान करता है।

+1

एसक्यूएल आधारित डेटाबेस के लिए सच है Sequelize ORM एक बढ़िया विकल्प है। –

+0

@RistoNovik अच्छा बिंदु! उत्तर अपडेट करेगा :) –

+0

अनुक्रमित करने के सुझाव के लिए धन्यवाद, यह कमाल है :) – kabirbaidhya

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