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.