ادغام دیتابیس با Express.js: راهنمای کامل درایورهای محبوب Node.js

Express.js به‌صورت پیش‌فرض هیچ دیتابیسی را مدیریت نمی‌کند، اما انعطاف‌پذیری آن باعث می‌شود بتوانید تقریباً به هر دیتابیس SQL یا NoSQL متصل شوید. کافی است درایور مناسب Node.js را نصب کرده و از API آن در برنامهٔ Express استفاده کنید. این مقاله نحوهٔ اتصال Express به محبوب‌ترین دیتابیس‌ها را همراه با مثال‌های واقعی توضیح می‌دهد.

Express Database IntegrationNode.js Database Drivers

~3 دقیقه مطالعه · آخرین به‌روزرسانی ۵ دی ۱۴۰۴

1. مقدمه


Express.js یک فریم‌ورک مینیمال است و هیچ دیتابیسی را به‌صورت داخلی مدیریت نمی‌کند. برای اتصال به دیتابیس، کافی است درایور مناسب را نصب کرده و از API آن استفاده کنید. این مقاله اتصال Express به دیتابیس‌های زیر را پوشش می‌دهد:

  • Cassandra
  • Couchbase
  • CouchDB
  • LevelDB
  • MySQL
  • MongoDB
  • Neo4j
  • Oracle
  • PostgreSQL
  • Redis
  • SQL Server
  • SQLite
  • Elasticsearch

2. Cassandra

ماژول: cassandra-driver

npm install cassandra-driver
const cassandra = require('cassandra-driver')
const client = new cassandra.Client({ contactPoints: ['localhost'] })

client.execute('select key from system.local', (err, result) => {
  console.log(result.rows[0])
})

3. Couchbase

ماژول: couchbase

npm install couchbase
const couchbase = require('couchbase')
const bucket = (new couchbase.Cluster('http://localhost:8091')).openBucket('bucketName')

bucket.insert('document-key', { name: 'Matt', shoeSize: 13 }, ...)

4. CouchDB

ماژول: nano

npm install nano
const nano = require('nano')('http://localhost:5984')
nano.db.create('books')
const books = nano.db.use('books')

books.insert({ name: 'The Art of war' }, null, ...)

5. LevelDB

ماژول: levelup

npm install level levelup leveldown
const levelup = require('levelup')
const db = levelup('./mydb')

db.put('name', 'LevelUP', ...)

6. MySQL

ماژول: mysql

npm install mysql
const mysql = require('mysql')
const connection = mysql.createConnection({ host:'localhost', user:'dbuser', ... })
connection.query('SELECT 1 + 1 AS solution', ...)

7. MongoDB

ماژول: mongodb

npm install mongodb

مثال (نسخه 3.*)

const MongoClient = require('mongodb').MongoClient

MongoClient.connect('mongodb://localhost:27017/animals', (err, client) => {
  const db = client.db('animals')
  db.collection('mammals').find().toArray(...)
})

برای مدل‌سازی شی‌گرا: Mongoose

8. Neo4j

ماژول: neo4j-driver

npm install neo4j-driver
const driver = neo4j.driver('neo4j://localhost:7687', neo4j.auth.basic('neo4j','letmein'))
driver.session().readTransaction(...)

9. Oracle

ماژول: oracledb

npm install oracledb
const conn = await oracledb.getConnection(config)
const result = await conn.execute('select * from employees where employee_id = :id', [empId])

10. PostgreSQL

ماژول: pg-promise

npm install pg-promise
const db = pgp('postgres://username:password@host:port/database')
db.one('SELECT $1 AS value', 123).then(...)

11. Redis

ماژول: redis

npm install redis
const client = redis.createClient()
client.set('string key', 'string val', redis.print)
client.hkeys('hash key', ...)

12. SQL Server

ماژول: tedious

npm install tedious
const connection = new Connection(config)
connection.execSql(new Request("select 123, 'hello world'", ...))

13. SQLite

ماژول: sqlite3

npm install sqlite3
const db = new sqlite3.Database(':memory:')
db.run('CREATE TABLE lorem (info TEXT)')

14. Elasticsearch

ماژول: elasticsearch

npm install elasticsearch
client.search({
  index: 'books',
  body: { query: { multi_match: { query:'express js', fields:['title','description'] } } }
})

نتیجه‌گیری


Express.js می‌تواند با هر دیتابیسی—چه SQL و چه NoSQL—کار کند. کافی است درایور مناسب را نصب کرده و از API آن استفاده کنید. این انعطاف‌پذیری، Express را به گزینه‌ای عالی برای ساخت برنامه‌های مدرن، مقیاس‌پذیر و داده‌محور تبدیل می‌کند.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

Express.js پیشرفته: بازنویسی API، استفاده از Template Engine، Debugging

Express.js پیشرفته: بازنویسی API، استفاده از Template Engine، Debugging و کار با Reverse Proxy

ادامه

بازنویسی API در Express و استفاده از Template Engineها

Express.js یک فریم‌ورک مینیمال و انعطاف‌پذیر است که بخش زیادی از قابلیت‌های آن از طریق متدها و ویژگی‌های موجود در request و response ارائه می‌شود. این متدها و ویژگی‌ها از طریق prototype به ارث می‌رسند و همین موضوع امکان بازنویسی (Override) و گسترش (Extend) API را فراهم می‌کند. علاوه بر این، Express از سیستم Template Engine پشتیبانی می‌کند تا بتوان صفحات HTML را به‌صورت پویا تولید کرد. این مقاله هر دو موضوع—بازنویسی API و استفاده از Template Engine—را به‌صورت کامل و کاربردی توضیح می‌دهد.

ادامه

ستفاده از Middleware در Express.js: راهنمای کامل و کاربردی

ستفاده از Middleware در Express.js: راهنمای کامل و کاربردی

ادامه

نوشتن Middleware در Express.js: راهنمای کامل برای توسعه‌دهندگان

Middleware در Express.js یکی از مهم‌ترین مفاهیم برای کنترل جریان درخواست‌ها، افزودن قابلیت‌ها، اعتبارسنجی، لاگ‌گیری، مدیریت خطا و ساخت معماری‌های ماژولار است. Middlewareها به سه عنصر اصلی دسترسی دارند: req، res و next. این توابع می‌توانند درخواست را تغییر دهند، پاسخ را ارسال کنند، یا کنترل را به middleware بعدی بسپارند. این مقاله تمام مفاهیم کلیدی Middleware—از ساخت ساده‌ترین نمونه تا Middlewareهای async، مدیریت خطا، و Middlewareهای قابل پیکربندی—را به‌صورت کامل و کاربردی توضیح می‌دهد.

ادامه

Routing در Express.js تعیین می‌کند که برنامه چگونه به درخواست‌های

Routing در Express.js تعیین می‌کند که برنامه چگونه به درخواست‌های HTTP در مسیرهای مختلف پاسخ دهد. این سیستم قدرتمند و انعطاف‌پذیر امکان تعریف مسیرهای ساده، الگوهای پیچیده، پارامترهای پویا، چندین هندلر، و ساختارهای ماژولار مبتنی بر Router را فراهم می‌کند. این مقاله تمام مفاهیم کلیدی Routing—از مسیرهای ساده تا Regex، پارامترها، middleware، app.route() و express.Router—را به‌صورت کامل و کاربردی توضیح می‌دهد.

ادامه