[1] Node.js 10

20 stycznia 2022 Wyłączono przez Adam [zicherka] Nogły

Zainstaluj Node.js 10

[1] Upewnij się, że aktualna wersja Node.js jest włączona i zainstalowana.

[root@vlsr01 ~]# dnf module list nodejs
Ostatnio sprawdzono ważność metadanych: 2:07:25 temu w dniu śro, 19 sty 2022, 13:49:20.
CentOS Stream 8 - AppStream
Name      Stream    Profiles                                Summary
nodejs    10 [d]    common [d], development, minimal, s2i   Javascript runtime
nodejs    12        common [d], development, minimal, s2i   Javascript runtime
nodejs    14        common [d], development, minimal, s2i   Javascript runtime
nodejs    16        common, development, minimal, s2i       Javascript runtime

Extra Packages for Enterprise Linux Modular 8 - x86_64
Name      Stream    Profiles                                Summary
nodejs    13        default, development, minimal           Javascript runtime
nodejs    16-epel   default, development, minimal           Javascript runtime

Wskazówka: [d]omyślne, [e]włączone, [x]wyłączone, [i]zainstalowane

#zainstaluj Node.js 10
[root@vlsr01 ~]# dnf module install nodejs:10
Ostatnio sprawdzono ważność metadanych: 2:08:40 temu w dniu śro, 19 sty 2022, 13:49:20.
Rozwiązano zależności.
================================================================================
 Pakiet
       Arch.  Wersja                                            Repoz.    Rozm.
================================================================================
Instalowanie pakietów grupy/modułu:
 nodejs
       x86_64 1:10.23.1-1.module_el8.4.0+645+9ce14ba2           appstream 8.9 M
 npm   x86_64 1:6.14.10-1.10.23.1.1.module_el8.4.0+645+9ce14ba2 appstream 3.7 M
Instalowanie słabych zależności:
 nodejs-full-i18n
       x86_64 1:10.23.1-1.module_el8.4.0+645+9ce14ba2           appstream 7.3 M
Instalowanie profili modułów:
 nodejs/common
Włączanie strumieni modułów:
 nodejs
              10
Podsumowanie transakcji
================================================================================
Instalacja  3 pakiety
Całkowity rozmiar pobierania: 20 M
Rozmiar po zainstalowaniu: 71 M
W porządku? [t/N]: t
Pobieranie pakietów:
(1/3): npm-6.14.10-1.10.23.1.1.module_el8.4.0+6 1.6 MB/s | 3.7 MB     00:02
(2/3): nodejs-full-i18n-10.23.1-1.module_el8.4. 2.6 MB/s | 7.3 MB     00:02
(3/3): nodejs-10.23.1-1.module_el8.4.0+645+9ce1 2.1 MB/s | 8.9 MB     00:04
--------------------------------------------------------------------------------
Razem                                           4.4 MB/s |  20 MB     00:04
Wykonywanie sprawdzania transakcji
Pomyślnie ukończono sprawdzanie transakcji.
Wykonywanie testu transakcji
Pomyślnie ukończono test transakcji.
Wykonywanie transakcji
  Wykonywanie skryptu            : npm-1:6.14.10-1.10.23.1.1.module_el8.4   1/1
  Przygotowywanie                :                                          1/1
  Instalowanie                   : nodejs-full-i18n-1:10.23.1-1.module_el   1/3
  Instalowanie                   : npm-1:6.14.10-1.10.23.1.1.module_el8.4   2/3
  Instalowanie                   : nodejs-1:10.23.1-1.module_el8.4.0+645+   3/3
  Wykonywanie skryptu            : nodejs-1:10.23.1-1.module_el8.4.0+645+   3/3
  Sprawdzanie                    : nodejs-1:10.23.1-1.module_el8.4.0+645+   1/3
  Sprawdzanie                    : nodejs-full-i18n-1:10.23.1-1.module_el   2/3
  Sprawdzanie                    : npm-1:6.14.10-1.10.23.1.1.module_el8.4   3/3
Installed products updated.
Zainstalowano:
  nodejs-1:10.23.1-1.module_el8.4.0+645+9ce14ba2.x86_64
  nodejs-full-i18n-1:10.23.1-1.module_el8.4.0+645+9ce14ba2.x86_64
  npm-1:6.14.10-1.10.23.1.1.module_el8.4.0+645+9ce14ba2.x86_64
Ukończono.

[root@vlsr01 ~]# node -v
v10.23.1

#stwórz skrypt w celu przetestowania poprawności działania
[root@vlsr01 ~]# cat > nodejs_test.js <<'EOF'
var http = require('http');
var server = http.createServer(function(req, res) {
res.write("Witaj, to jest prosty serwer WEB Node.js!!!\n");
res.end();
}).listen(8080);
EOF

[root@vlsr01 ~]# node nodejs_test.js &
[1] 23327

[root@vlsr01 ~]# curl -k localhost:8080
Witaj, to jest prosty serwer WEB Node.js!!!

[root@vlsr01 ~]# kill 23327

[2] Certyfikaty użyte w tym przykładzie wykonano zgodnie z: Certyfikat SSL – Let’s Encrypt.

[3] Jeśli Firewalld jest uruchomiony zezwól na ruch na porcie 1337/tcp.

[root@vlsr01 ~]# firewall-cmd --add-port=1337/tcp --permanent
success
[1]+  Zakończony             node nodejs_test.js
[root@vlsr01 ~]# firewall-cmd --reload
Success

[4] Utwórz przykładową aplikację czatu, w której zaimplementowano WebSocket i SSL/TLS w celu weryfikacji działania.

[user01@vlsr01 ~]$ npm install fs socket.io express

[user01@vlsr01 ~]$ mcedit chat.js
var fs = require('fs');
var express = require('express');
var app = express();

var opts = {
  key: fs.readFileSync('/etc/letsencrypt/live/vlsr01.zicher.lab/privkey.pem').toString(),
  cert: fs.readFileSync('/etc/letsencrypt/live/vlsr01.zicher.lab/fullchain.pem').toString(),
};

var http = require('https').Server(opts, app);
var io = require('socket.io')(http, opts);

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    io.emit('chat message', msg);
  });
});

http.listen(1337, function(){
  console.log('listening on *:1337');
});

[user01@vlsr01 ~]$ mcedit index.html
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Chat</title>
</head>
<body>
<form action="">
<input id="sendmsg" autocomplete="off" /><button>Send</button>
</form>
<ul id="messages" style="list-style-type: decimal; font-size: 16px; font-family: Arial;"></ul>
<script src="https://www.zicher.lab:1337/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery.min.js"></script>
<script>
  var socket = io('https://www.zicher.lab:1337');
  $('form').submit(function(){
    socket.emit('chat message', $('#sendmsg').val());
    $('#sendmsg').val('');
    return false;
  });
  socket.on('chat message', function(msg){
    $('#messages').append($('<li style="margin-bottom: 5px;">').text(msg));
  });
</script>
</body>
</html>

[user01@vlsr01 ~]$ node chat.js
listening on *:1337

#jeśli [user01] nie ma dostępu do /etc/letsencrypt/live/vlsr01.zicher.lab/*.pem, uruchom jako [sudo]

[5] Sprawdź dostęp do utworzonej aplikacji.