Poradniki > Jak stworzyć aplikację internetową z Node.js i Redis na Ubuntu 20.04

Jak stworzyć aplikację internetową z Node.js i Redis na Ubuntu 20.04

Zobacz poradnik tutaj

Opublikowany: 10 września 2020

Node.js Redis Ubuntu

W poniższym poradniku zobaczysz, jak stworzyć podstawy aplikacji internetowej przy użyciu Node.js razem z Redis. Magazyn danych Redis jest szeroko stosowany jako baza danych do buforowania, a także do zarządzania aplikacjami, które wymagają wymiany wiadomości w czasie rzeczywistym.

Twoja przykładowa aplikacja będzie odpowiadać na wywołania REST, umożliwiając klientowi zapisanie i odczytanie archiwum książek.

Express będzie używany jako platforma sieciowa do obsługi żądań HTTP, podczas gdy Redis pozwoli na trwałe zapisywanie informacji na dysku.

Aby rozpocząć, połącz się z serwerem Ubuntu 20.04 za pośrednictwem połączenia SSH. Jeśli jeszcze tego nie zrobiłeś, postępuj zgodnie z naszym przewodnikiem, aby bezpiecznie łączyć się za pomocą protokołu SSH. W przypadku serwera lokalnego przejdź do następnego kroku i otwórz terminal swojego serwera.

Instalacja Redis

Najpierw zaktualizuj repozytorium pakietów za pomocą następującego polecenia:

$ sudo apt update

Następnie zainstaluj pakiet „redis-server”:

$ sudo apt install redis-server -y

Aby przetestować instalację i poznać pierwsze instrukcje Redis, połącz się z bazą danych za pomocą polecenia:

$ redis-cli

Pierwszym poleceniem, którego należy się nauczyć, jest SET: to polecenie pozwala na stałe ustawić wartość klucza w bazie danych.

Następnie użyj polecenia, aby przypisać wartość „hello world” do klucza „testKey”:

> SET testKey “hello world”

Klucze Redis umożliwiają przechowywanie dowolnego typu danych, w tym ciągów znaków, liczb lub sekwencji binarnych, takich jak obrazy i pliki. Należy jednak wiedzieć, że maksymalny rozmiar klucza Redis nie może przekraczać 512 Mb.

Aby uzyskać aktualną wartość klucza Redis, użyj polecenia GET, po którym następuje nazwa klucza:

> GET testKey
“hello world”

Kolejną przydatną instrukcją, która może się pojawić, jest INCR: pozwala on zwiększyć aktualny klucz jednostki, jak pokazano poniżej.

> SET testKey 100
> INCR testKey

Ponownie odczytując wartość testKey, klucz zwróci 101:

> GET testKey
101

Następnie usuń klucz używany do tych testów za pomocą instrukcji DEL:

> DEL testKey

Teraz zakończ sesję poleceniem:

> QUIT

Instalacja Node.js i npm

Najpierw zainstaluj Node.js i menedżera pakietów npm za pomocą następującego polecenia:

$ sudo apt install nodejs npm -y

Aby stworzyć aplikację zgodną ze standardami wyznaczonymi przez Node.js, zainicjuj podstawową konfigurację npm.

Następnie utwórz folder dla projektu (w tym przykładzie o nazwie „książki”) i przenieś się do niego.

$ mkdir books
$ cd books

Uruchom następujące polecenie konsoli w nowo utworzonym folderze:

$ npm init

Uruchomiony zostanie kreator, który utworzy plik package.json, który będzie zawierał wszystkie podstawowe informacje o projekcie i jego zależnościach.

Użyj sugerowanych wartości, aby kontynuować, jak pokazano poniżej:

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 json` 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: (books)
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to package.json:

{
 "name": "books",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
 },
 "author": "",
 "license": "ISC"
}

Is this OK? (yes) yes

Odpowiedz yes, aby zakończyć procedurę.

Następnie kontynuuj, instalując dwa główne moduły:

$ npm install --save express ioredis

Dodając parametr --save, npm ma zaktualizować plik package.json, dodając te dwie zależności do projektu.

Stworzenie aplikacji Express

W tym momencie kontynuuj ustawianie punktu wejścia dla aplikacji Express, tworząc plik index.js w tym samym katalogu, co package.json.

Użyj swojego ulubionego edytora tekstu, aby wkleić następujące treści do nowo utworzonego pliku:

/**
* First, include the two previously installed modules 
* 
*/
var express = require('express');
var Redis = require( 'ioredis' );

const redis = new Redis();

/**
* Initialize a new Express application
*/
var app = express();

/**
* Use the main server root to list all the books 
* 
*/
app.get('/', function (req, res) {

 redis.lrange( "books" , 0, -1 ).then( rows => {

 /**
 * Send all the lines found in the “books” chart
 */

 res.send( rows );
 });

});

/**
* Then, to save it, use the path /save/ followed by the title and the author of the book. 
* /save/ seguito dal titolo e dall'autore
*/
app.get('/save/:title/:author', function (req, res) {

 /**
 * Prepare the data in object format
 */
 var data = { title: req.params.title, author: req.params.author };

 /**
 * And insert the object in text format in a “books” list
 */

 redis.lpush( "books" , JSON.stringify( data ) ).then( () => {
 res.send(true);
 });

});

/**
* Then, start the listening server on the port 8001
*/

app.listen (8001, function () {
 console.log('Books server ready');
});

W tym momencie uruchom serwer poleceniem:

$ node index.js

Za pomocą ulubionej przeglądarki odwiedź następujący adres URL. Upewnij się, że zmieniłeś adres IP na adres swojego serwera i użyj portu 8001:

http://SERVER_IP:8001/

Jeśli wszystko działa poprawnie, Twoja aplikacja internetowa odpowie:

[]

Następnie użyj przeglądarki, aby zapisać pierwsze 3 książki, odwiedzając następujące adresy URL:

http://SERVER_IP:8001/save/Il%20Decamerone/Giovanni%20Boccaccio

http://SERVER_IP:8001/save/Il%20fu%20Mattia%20Pascal/Luigi%20Pirandello

http://SERVER_IP:8001/save/Il%20barone%20rampante/Italo%20Calvino

Uwaga: Pamiętaj, aby zawsze zastępować adres „SERVER_IP” adresem swojego serwera.

Dlatego upewnij się, że książki zostały zapisane, przechodząc do poprzednio używanego adresu URL:

http://SERVER_IP:8001/

Serwer powinien odpowiedzieć następującą treścią:

[{"title":"Il Decamerone","author":"Giovanni Boccaccio"},{"title":"Il fu Mattia Pascal","author":"Luigi Pirandello"},{"title":"Il barone rampante","author":"Italo Calvino"}]

Jeśli tak, to poprawnie wykonałeś wszystkie instrukcje i utworzyłeś swoją pierwszą działającą aplikację internetową w Node.js i Redis. Nowo utworzona aplikacja będzie odpowiadać na wywołania REST i umożliwi użytkownikom zapisywanie i czytanie archiwum książek.