Ինչպես միանալ PostgreSQL տվյալների բազային՝ օգտագործելով Node.js-ը


Node.js-ն առաջարկում է շատ ճկունություն PostgreSQL-ին միանալիս, բայց այն նաև դարձնում է ամբողջ գործընթացը պարզ:

Իրական աշխարհի հավելվածների մեծ մասը այս կամ այն կերպ փոխազդում է տվյալների բազաների հետ: Տվյալների բազաները հեշտացնում են համառությունը, վերլուծությունը և տվյալների հետ փոխազդեցությունը:

Ծրագրավորման լեզուներից շատերն առաջարկում են հավելվածները միացնել տվյալների բազաներին, ինչպիսիք են PostgreSQL-ը: Իմացեք, թե ինչպես կարող եք օգտագործել node-postgres մոդուլը՝ Node հավելվածը PostgreSQL-ին միացնելու համար:

Ինչպես սկսել

Տեղական տվյալների բազայի միանալուց սկսելու համար ձեզ հարկավոր է տեղադրել PostgreSQL սերվերը:

PostgresSQL-ն իր ճկունության և հզորության շնորհիվ հարաբերական տվյալների բազայի ամենատարածված համակարգերից է: Դուք կարող եք դիտարկել այն որպես MySQL-ի այլընտրանք, եթե ձեր նախագիծը բարդ է կամ փնտրում եք լուծում, որը ներառում է բաց կոդով էթոսը:

Ստեղծեք հանգույցի հավելված

Առաջին քայլը Node հավելվածի ստեղծումն է, որը դուք կօգտագործեք կապի կոդը փորձարկելու համար: Ձեր նախընտրած պանակում ստեղծեք նոր թղթապանակ:

mkdir postgres-node

Նավարկեք ձեր ստեղծած թղթապանակը և սկզբնավորեք npm:

cd postgres-node
npm init -y

Այս հրամանը պետք է ստեղծի package.json ֆայլ:

Հաջորդը, ստեղծեք նոր ֆայլ և անվանեք այն index.js: Այս ֆայլում դուք կմիացնեք Node-ը PostgreSQL-ին:

Օգտագործեք node-postgres մոդուլը

Node-postgres մոդուլը npm փաթեթ է, որը թույլ է տալիս միանալ PostgreSQL տվյալների բազայի հետ և համագործակցել դրա հետ: Կան երկու տարբերակ, որոնք կարող եք օգտագործել Node-ը PostgreSQL-ի հետ կապելու համար՝ օգտագործելով node-postgres մոդուլը՝ մեկ հաճախորդ կամ կապի լողավազան: Այսպիսով, ինչ պետք է օգտագործեք:

Օգտագործեք մեկ հաճախորդ, եթե ձեզ միաժամանակ անհրաժեշտ է միայն մեկ ստատիկ կապ: Այնուամենայնիվ, եթե Ձեզ անհրաժեշտ է օգտագործել միաժամանակյա և մի քանի հարցումներ, օգտագործեք կապի լողավազան:

Տեղադրեք node-postgres-ը

Գործարկեք հետևյալ հրամանը ձեր տերմինալում՝ node-postgres-ը տեղադրելու համար։

npm install pg

Եթե դուք օգտագործում եք հանգույց >= 14.x, ապա ձեզ հարկավոր է տեղադրել pg@8.2.x o ավելի ուշ: Դուք կարող եք նշել տարբերակի համարը՝ այն դնելով տեղադրման հրամանի վրա այսպես.

npm install pg=8.7.3

Միացում PostgreSQL-ին

Node-postgres մոդուլը պահանջում է հետևյալ արժեքները PostgreSQL տվյալների բազայի հետ միանալու համար:

  • PGUSER - PostgreSQL օգտվողի անուն՝ որպես միանալու համար:
  • PGHOST - սերվերի սերվերի անունը, որին պետք է միանալ:
  • PGPASSWORD - PostgreSQL սերվերի գաղտնաբառը:
  • PGDATABASE - տվյալների բազայի անվանումը, որին միանում եք:
  • PGPORT - Սերվերի հոսթում միանալու պորտի համարը:

Ստեղծեք .env ֆայլ և ավելացրեք այս փոփոխականները՝ փոխարինելով ձեր տվյալների բազայի համապատասխան արժեքները.

PGUSER=<PGUSER>
PGHOST=<PGHOST>
PGPASSWORD=<PGPASSWORD>
PGDATABASE=<PGDATABASE>
PGPORT=<PGPORT>

Տեղադրեք dotenv փաթեթը՝ .env ֆայլ մուտք գործելու համար:

npm install dotenv

index.js-ում ներմուծեք և կազմաձևեք dotenv-ը:

const dotenv = require("dotenv")
dotenv.config()

Միացեք PostgreSQL տվյալների շտեմարանին՝ օգտագործելով մեկ հաճախորդ

Ստորև բերված կոդը ցույց է տալիս, թե ինչպես կարող եք Node-ը միացնել PostgreSQL սերվերին՝ օգտագործելով մեկ հաճախորդ:

const { Client } = require("pg")
const dotenv = require("dotenv")
dotenv.config()
 
const connectDb = async () => {
    try {
        const client = new Client({
            user: process.env.PGUSER,
            host: process.env.PGHOST,
            database: process.env.PGDATABASE,
            password: process.env.PGPASSWORD,
            port: process.env.PGPORT
        })
 
        await client.connect()
        const res = await client.query('SELECT * FROM some_table')
        console.log(res)
        await client.end()
    } catch (error) {
        console.log(error)
    }
}
 
connectDb()

Օգտագործելով միացման լողավազան

Ինչպես արդեն նշվեց, կապի լողավազանը թույլ է տալիս մի քանի հարցումներ կատարել ձեր սերվերին:

const { Pool } = require("pg");
const dotenv = require("dotenv");
dotenv.config();
 
const connectDb = async () => {
    try {
        const pool = new Pool({
            user: process.env.PGUSER,
            host: process.env.PGHOST,
            database: process.env.PGDATABASE,
            password: process.env.PGPASSWORD,
            port: process.env.PGPORT,
        });
 
        await pool.connect()
        const res = await pool.query('SELECT * FROM clients')
        console.log(res)
        await pool.end()
    } catch (error) {
        console.log(error)
    }
}
 
connectDb()

Վերոհիշյալ օրինակները թույլ են տալիս վերահսկել տվյալների բազայի կազմաձևումը .env ֆայլի միջոցով: Այնուամենայնիվ, դուք կարող եք նաև տրամադրել այս կազմաձևման արժեքները՝ օգտագործելով ստանդարտ միջավայրի փոփոխականներ: Այս մոտեցումը թույլ է տալիս հեշտությամբ փոփոխել կոնֆիգուրացիան գործարկման ժամանակ:

Հաշվի առեք հետևյալ կապի կոդը.

const connectDb = async () => {
    try {
        const pool = new Pool();
        const res = await pool.query('SELECT * FROM clients')
        console.log(res)
        await pool.end()
    } catch (error) {
        console.log(error)
    }
}

Այս ծրագրում դուք չեք փոխանցում կապի օբյեկտը որպես արգումենտ Pool-ը սկզբնավորելիս: Փոխարենը, դուք պետք է նշեք կապի մանրամասները, երբ դուք կանչում եք ծրագիրը հետևյալ կերպ.

PGUSER=<PGUSER> \
PGHOST=<PGHOST> \
PGPASSWORD=<PGPASSWORD> \
PGDATABASE=<PGDATABASE> \
PGPORT=<PGPORT> \
node index.js

Node-ը PostgreSQL-ին այսպես միացնելը թույլ է տալիս գրել ավելի բազմակի օգտագործման ծրագիր:

Ավելին անել PostgreSQL-ի հետ

Տվյալների բազաների հետ փոխազդող հավելված ստեղծելու համար նախ պետք է այն միացնել տվյալների բազային: Այս հոդվածում դուք սովորեցիք, թե ինչպես միացնել Node-ը PostgreSQL տվյալների բազայի հետ՝ օգտագործելով node-Postgres մոդուլը:

Բացի PostgreSQL-ից, կան տվյալների բազայի կառավարման այլ համակարգեր, ինչպիսիք են MySQL-ը, որոնք կարող եք օգտագործել ձեր հավելվածում: Ձեր ընտրած տվյալների բազայի գործիքը պետք է լինի առավելագույնը համատեղելի ձեր տվյալների կարիքների հետ: