اکوسیستم Node.js مجموعهای از ابزارها برای ارتباط با پایگاه دادهها فراهم میکند. یکی از این ابزارها node-postgres است که شامل ماژولهایی برای ارتباط Node.js با پایگاه داده PostgreSQL میباشد. با استفاده از node-postgres میتوانید برنامههایی بنویسید که امکان دسترسی به دادهها و ذخیره آنها در پایگاه داده PostgreSQL را فراهم میآورند.
در این آموزش، شما با استفاده از node-postgres به پایگاه داده PostgreSQL متصل شده و عملیات پرسوجو انجام خواهید داد. ابتدا یک کاربر و پایگاه داده در Postgres میسازید. سپس برنامه خود را با استفاده از ماژول node-postgres به پایگاه داده متصل میکنید. در ادامه دادهها را درج، بازیابی و ویرایش خواهید کرد.
پیشنیازهای آموزش
- یک حساب کاربری غیر روت با دسترسی sudo و فایروال فعال در اوبونتو 20.04.
- نصب Node.js روی اوبونتو.
- نصب PostgreSQL روی سرور.
- دانش پایه در نوشتن کوئریهای PostgreSQL.
- آشنایی با نوشتن برنامههای Node.js.
- درک مقدماتی از توابع ناهمزمان در جاوااسکریپت.
ایجاد دایرکتوری پروژه و نصب node-postgres
ابتدا دایرکتوری پروژه را بسازید:
mkdir my-project
وارد دایرکتوری شوید:
cd my-project
دایرکتوری را با ایجاد فایل package.json آماده کنید:
npm init -y
سپس ماژول node-postgres را نصب کنید:
npm install pg
اکنون دایرکتوری پروژه شما آماده و node-postgres به عنوان وابستگی نصب شده است. آمادهاید تا کاربر و پایگاه داده جدیدی در Postgres بسازید.
ایجاد کاربر و پایگاه داده در PostgreSQL
زمانی که PostgreSQL را روی اوبونتو نصب میکنید، به صورت پیشفرض یک کاربر و پایگاه داده به نام postgres ساخته میشود. این کاربر امکان انجام عملیات مدیریتی مثل ایجاد کاربران و پایگاه دادههای جدید را فراهم میکند.
برای ورود به shell پستگرس با کاربر postgres، ابتدا کاربر اوبونتو را به postgres تغییر داده و سپس به پستگرس وصل شوید:
sudo -i -u postgres
psql
حالا میتوانید کاربر جدیدی با رمز عبور قوی ایجاد کنید (مثلاً fish_user):
CREATE ROLE fish_user WITH LOGIN PASSWORD 'strongpassword';
پایگاه داده جدیدی بسازید و مالکیت آن را به کاربر جدید بسپارید:
CREATE DATABASE fish OWNER fish_user;
برای خروج از محیط پستگرس دستور زیر را بزنید:
\q
برای ورود به postgres shell با کاربر fish_user ابتدا باید همان کاربر را روی اوبونتو ایجاد کنید:
sudo adduser fish_user
ایجاد جدول shark در پایگاه داده fish
وارد محیط پستگرس با کاربر fish_user شوید و به پایگاه داده fish متصل شوید:
sudo -u fish_user psql -d fish
برای مشاهده اتصال فعلی دستور زیر را استفاده کنید:
\conninfo
اکنون جدول shark را با سه ستون ایجاد کنید:
CREATE TABLE shark (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
color VARCHAR(50) NOT NULL
);
برای مشاهده جداول موجود از دستور زیر استفاده کنید:
\dt
خارج شوید:
\q
اتصال Node.js به پایگاه داده با node-postgres
فایل db.js را با ویرایشگر متن دلخواه باز کنید:
nano db.js
کد زیر را در db.js اضافه کنید:
const { Pool } = require('pg');
const pool = new Pool({
user: 'fish_user',
host: 'localhost',
database: 'fish',
password: 'strongpassword',
port: 5432,
});
module.exports = pool;
حفظ اطلاعات حساس در محیط تولید بهتر است از طریق فایلهای .env انجام شود که در گیت ثبت نشوند.
درج داده در جدول shark
فایل insertData.js را ایجاد و باز کنید:
nano insertData.js
کد زیر را قرار دهید:
const pool = require('./db');
async function insertData() {
try {
const [name, color] = process.argv.slice(2);
await pool.query('INSERT INTO shark (name, color) VALUES ($1, $2)', [name, color]);
console.log(`Inserted ${name} with color ${color} successfully`);
} catch (err) {
console.error(err);
}
}
insertData();
حالا دستور زیر را برای ورود داده اجرا کنید:
node insertData.js sammy blue
پیام موفقیت نمایش داده و رکورد درج میشود. مجدداً با مقادیر متفاوت اجرا کنید:
node insertData.js jose teal
بازیابی دادهها
فایل retrieveData.js بسازید و کد زیر را وارد کنید:
const pool = require('./db');
async function retrieveData() {
try {
const res = await pool.query('SELECT * FROM shark');
console.log(res.rows);
} catch (err) {
console.error(err);
}
}
retrieveData();
برای مشاهده دادهها اجرا کنید:
node retrieveData.js
بهروزرسانی رکوردها
فایل modifyData.js را بسازید و کد زیر را وارد کنید:
const pool = require('./db');
async function modifyData() {
try {
const [id, name] = process.argv.slice(2);
await pool.query('UPDATE shark SET name = $1 WHERE id = $2', [name, id]);
console.log(`Updated record id ${id} with new name ${name}`);
} catch (err) {
console.error(err);
}
}
modifyData();
برای تغییر نام رکورد با id=2 دستور زیر را اجرا کنید:
node modifyData.js 2 san
و برای اطمینان از تغییر، دادهها را دوباره بازیابی کنید:
node retrieveData.js
جمعبندی
در این آموزش، با استفاده از node-postgres یک برنامه Node.js به پایگاه داده PostgreSQL متصل شده و عملیات درج، بازیابی و ویرایش داده را انجام دادید. ابتدا کاربر و پایگاه داده جدید را ایجاد کردید، سپس جدول ساختید و در نهایت با کدهایی ساده دادهها را مدیریت نمودید.
برای اطلاعات بیشتر به مستندات node-postgres در وبسایت رسمی مراجعه کنید.
از همراهی شما با جامعه آموزش پارمین کلود سپاسگزاریم.





نظرات کاربران