Hoe benader je een PostgreSQL vanuit een Node.js-applicatie?


Een PostgreSQL-database benaderen vanuit een Node.js-applicatie

Doel

In deze tutorial leert u hoe u een PostgreSQL-database benadert vanuit een Node.js-applicatie.

Node.js is één van de bekendste asynchrone event-gedreven runtimes voor JavaScript. Doordat het de afgelopen jaren veel is toegepast, kun je in development niet om het platform heen. Voor meer informatie en de mogelijkheden van het Node.js-platform verwijzen we naar de officiële documentatie.

PostgreSQL is een van de bekendste databases ter wereld. De gebruiksvriendelijkheid ervan en de Open Source-benadering zijn belangrijke punten bij het wijdverbreide gebruik ervan. Zie voor meer informatie en de mogelijkheden van PostgreSQL de officiële documentatie.

 

Vereisten

In deze tutorial wordt ervan uitgegaan dat u Ubuntu 22.04 heeft, dat bijvoorbeeld in een OVHcloud Compute-instance draait, en dat u enige basiskennis heeft van hoe u dit moet gebruiken. Als u geen actieve Ubuntu 22.04 heeft, volg dan de handleiding om een OVHcloud Compute Instance te gebruiken.

Als u wilt weten hoe u het platform Node.js installeert, raadpleeg dan de tutorial Hoe installeer je Node.js op Ubuntu 22.04.
Als u wilt weten hoe u PostgreSQL installeert, raadpleeg dan de tutorial Hoe installeer je PostgreSQL op Ubuntu 22.04.

U kunt ook een IDE gebruiken om het werken met de bronbestanden van deze tutorial te vergemakkelijken. U kunt eens kijken naar VS Code, WebStorm of andere.

 

Instructies

In deze tutorial zult u eerst de node-postgres library van Node.js installeren en dan zult u deze in een Node.js-applicatie gebruiken.

Bij het schrijven van deze tutorial is de laatste LTS-versie van de node-postgres library 8.7.3.

 

Het project initialiseren

Creëer eerst een map nodejs-pg-example en voer het commando NPM init uit:

mkdir nodejs-pg-example cd nodejs-pg-example npm init

De output zou als volgt moeten zijn:

$ mkdir nodejs-pg-example
$ cd nodejs-pg-example
$:~/nodejs-pg-example$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help init` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (nodejs-pg-example) 
version: (1.0.0) 
description: Example project to access PostgreSQL from a Node.js application
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: OVHcloud
license: (ISC) 
About to write to /home/ubuntu/nodejs-pg-example/package.json:

{
  "name": "nodejs-pg-example",
  "version": "1.0.0",
  "description": "Example project to access PostgreSQL from a Node.js application",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "OVHcloud",
  "license": "ISC"
}


Is this OK? (yes) yes

Er is dan een bestand package.json aangemaakt in de map nodejs-pg-example:

{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC" }

 

PostgreSQL-elementen maken

We gaan ervan uit dat uw PostgreSQL-database geïnstalleerd is

Maak eerst een tabel met de naam example_table:

CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50));

De output zou als volgt moeten zijn:

foo@ubuntu:~$ psql -d example
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

example=> CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50));
CREATE TABLE

Voeg vervolgens enkele gegevens in:

INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.'); INSERT INTO example_table (id, message) VALUES (2, '👋 Hola, mundo.');

De output zou als volgt moeten zijn:

example=> INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.');
INSERT 0 1
example=> INSERT INTO example_table (id, message) VALUES (2, '👋 Hola, mundo.');
INSERT 0 1
exit
foo@ubuntu:~$ 

 

Configureer de applicatie om de PostgreSQL-database te benaderen

Voeg eerst de afhankelijkheid van de node-postgres library toe aan het bestand package.json. Ga hiervoor naar de map nodejs-pg-example en gebruik het commando npm om de library toe te voegen:

npm install pg

De output zou als volgt moeten zijn:

~/nodejs-pg-example$ npm install pg

added 15 packages, and audited 16 packages in 2s

found 0 vulnerabilities

Het bestand package.json is bijgewerkt door NPM:

{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC", "dependencies": { "pg": "^8.7.3" } }

Nu bent u klaar om de Javascript-code te schrijven die de database zal benaderen.

 

Benader de database met de applicatie

Maak eerst een bestand HelloWorld.js in de map nodejs-pg-example en plak de volgende code:

const { Client } = require('pg') async function sayHello() { const client = new Client({ user: 'foo', password: 'bar', database: 'example' }) await client.connect() const res = await client.query('SELECT * FROM example_table') console.log(res.rows[0].message) // 👋 Hello world. console.log(res.rows[1].message) // 👋 Hola, mundo. await client.end() } sayHello()

Voer vervolgens de code uit:

node HelloWorld.js

De output zou als volgt moeten zijn:

$ node HelloWorld.js 
👋 Hello World.
👋 Hola, mundo.

Dat is alles. U heeft met succes uw eerste Node.js-applicatie geschreven om een PostgreSQL-database te benaderen.

 

Verdere stappen

Bekijk de producten voor Public Cloud-instances op OVHcloud.