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

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

Express Database IntegrationNode.js Database Drivers

~2 دقیقه مطالعه • بروزرسانی ۵ دی ۱۴۰۴

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 را به گزینه‌ای عالی برای ساخت برنامه‌های مدرن، مقیاس‌پذیر و داده‌محور تبدیل می‌کند.

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