Website-Suche

So schreiben Sie Ihre erste Node.js-App unter Linux


Die Webentwicklungstrends haben sich in den letzten Jahren drastisch verändert und als Webentwickler ist es wichtig, über die neuesten Technologien auf dem Laufenden zu bleiben, um an der Spitze zu bleiben.

JavaScript ist derzeit die angesagteste Programmiersprache; Es ist zweifellos die beliebteste Technologie, die von Full-Stack-Entwicklern verwendet wird.

JavaScript-Webframeworks sind zu einer magischen Lösung für eine schnellere Webentwicklung mit absoluter Effizienz, Sicherheit und minimierten Kosten geworden. Ich bin mir ziemlich sicher, dass Sie schon einmal von Node JavaScript (allgemein als Node.js oder einfach Node bezeichnet) gehört haben. Es herrscht großes Aufsehen darüber im Internet.

In diesem Artikel zeige ich Ihnen, wie Sie mit der Entwicklung von Anwendungen in JavaScript mithilfe von Node.js unter Linux beginnen. Aber zunächst erhalten wir eine kurze Einführung in Node.js.

Was ist Node.js?

Node.js ist eine Open-Source-, leichte und effiziente JavaScript-Laufzeitumgebung, die auf der V8-JavaScript-Engine von Chrome basiert. Es ist ohne Threads (Single-Threaded) konzipiert und verfügt über eine ähnliche Implementierung wie Twisted, eine Netzwerk-Engine, die mit Python oder Event Machine, einer Ereignisverarbeitungsbibliothek für Ruby-Programme, erstellt wurde.

Das Herzstück von Node.js basiert auf ereignisgesteuerter Programmierung; Ein Programmierer sollte daher verstehen, welche Ereignisse verfügbar sind und wie er darauf reagieren kann.

Paketverwaltung unter Node.js

Node.js verwendet den JavaScript-Paketmanager und das Ökosystem namens „npm“, das eine riesige Sammlung kostenloser Open-Source-Bibliotheken enthält. Es unterstützt die modulare Softwareentwicklung. Sie können damit Knotenpakete installieren, Ihren Code freigeben, verteilen und Paketabhängigkeiten verwalten.

Warum ist Node.js wichtig?

Node.js ist aus folgenden Gründen leistungsstark und daher wichtig:

  • Es verwendet ein asynchrones, ereignisgesteuertes, nicht blockierendes I/O-Ausführungsmodell, das den Durchsatz einer Anwendung verbessert und die Skalierbarkeit für reale Webanwendungen unterstützt.
  • Es ist Single-Threaded und kann daher jeweils nur eine CPU nutzen.
  • Eine node.js-Webanwendung ist ein vollständiger Webserver, zum Beispiel Nginx oder Apache.
  • Es unterstützt Threads über die API child_process.fork(), um untergeordnete Prozesse zu erzeugen, und bietet außerdem ein Cluster-Modul.

Mit dieser kurzen Einführung werden Sie sicherlich Lust darauf haben, Ihr erstes JavaScript-Programm zu schreiben. Als Erstes müssen Sie jedoch die Pakete Node.js und NPM auf Ihrem Linux-System installieren, indem Sie die folgende Anleitung befolgen.

  1. Installieren Sie die neueste Nodejs- und NPM-Version in Linux-Systemen

So erstellen Sie Ihre erste Node.js-App unter Linux

Sobald Sie Node.js installiert haben, können Sie loslegen. Erstellen Sie zunächst ein Verzeichnis, in dem Ihre Anwendungsdateien gespeichert werden.

sudo mkdir -p /var/www/myapp

Wechseln Sie dann in dieses Verzeichnis und erstellen Sie eine package.json-Datei für Ihre Anwendung. Diese Datei dient als kleine Dokumentation für Ihr Projekt: Name des Projekts, Autor, Liste der Pakete, von denen es abhängt, und so weiter.

cd /var/www/myapp
npm init

Dabei werden Ihnen eine Reihe von Fragen gestellt. Beantworten Sie diese einfach wie unten beschrieben und drücken Sie die [Enter]-Taste. Beachten Sie, dass die wichtigsten Dinge in der package.json die Namens- und Versionsfelder sind, wie unten erläutert.

  • Paketname – Ihr App-Name, standardmäßig der Verzeichnisname.
  • Version – Version Ihrer App.
  • Beschreibung – Schreiben Sie eine kurze Beschreibung für Ihre App.
  • Einstiegspunkt – legt die standardmäßig auszuführende Paketdatei fest.
  • Testbefehl – wird zum Erstellen eines Testskripts verwendet (standardmäßig ein leeres Skript).
  • Git-Repository – Definieren Sie ein Git-Repository (falls vorhanden).
  • Schlüsselwörter – Legen Sie Schlüsselwörter fest, die für andere Benutzer wichtig sind, um Ihr Paket auf npm zu identifizieren.
  • Autor – gibt den Namen des Autors an. Geben Sie hier Ihren Namen ein.
  • Lizenz – Geben Sie eine Lizenz für Ihre App/Ihr Paket an.

Als nächstes erstellen Sie eine server.js-Datei.

sudo vi server.js

Kopieren Sie den folgenden Code und fügen Sie ihn ein.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Starten Sie als Nächstes Ihre Anwendung mit dem folgenden Befehl.

node server.js
OR
npm start

Öffnen Sie als Nächstes einen Webbrowser und greifen Sie auf Ihre Web-App zu, die nichts weiter tut, als die Zeichenfolge „Hallo Welt!“ auszugeben. ”, unter Verwendung der Adresse:

http://localhost:3333

In unserem obigen Code ist das Hauptereignis, das verarbeitet wird, eine HTTP-Anfrage über das HTTP-Modul.

Das Nodejs HTTP-Modul

In Node.js ähneln Module eher JavaScript-Bibliotheken, sie enthalten Funktionen, die Sie in Ihrer App wiederverwenden können. Sie können integrierte Module oder dreißig Partymodule verwenden oder Ihre eigenen erstellen.

Um Module in Ihrer App aufzurufen, verwenden Sie die Funktion „require“ wie gezeigt.

var http = require('http');

Sobald das http-Modul eingebunden ist, erstellt es einen Server, der an einem bestimmten Port lauscht (in diesem Beispiel 3333). Die Methode http.creatServer erstellt den eigentlichen http-Server, der eine Funktion (die aufgerufen wird, wenn ein Client versucht, auf die App zuzugreifen) als Argument akzeptiert.

http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.end('Hello World!');
}).listen(3333);

Die Funktion in http.createServer hat zwei Argumente: req(request) und res(response). Das Argument req ist die Anfrage eines Benutzers oder Clients und das Argument res sendet eine Antwort an den Client.

res.writeHead(200, { 'Content-Type': 'text/plain' });		#This is a response HTTP header
res.end('Hello World!');

Der letzte Teil des Codes sendet die Ausgabe an die Konsole, sobald der Server gestartet ist.

console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Routing in Node.js

In diesem Abschnitt erkläre ich eines der wichtigsten Konzepte der Node.js-Programmierung, bekannt als Routing (vergleichbar mit dem Routing in Computernetzwerken: Prozess der Suche nach einem Pfad für den Datenverkehr). in einem Netzwerk).

Hier ist Routing eine Technik zur Bearbeitung der Anfrage eines Kunden; Bereitstellung des Inhalts, den der Kunde angefordert hat, wie in der URL angegeben. Eine URL besteht aus einem Pfad und einer Abfragezeichenfolge.

Um die Anfrage-Abfragezeichenfolge eines Kunden anzuzeigen, können wir die folgenden Zeilen in unsere Antwort einfügen.

res.write(req.url);
res.end()

Unten ist der neue Code.

var http = require('http');
http.createServer(function(req,res){
        res.writeHead(200, { 'Content-Type': 'text/plain' });
        res.write(req.url);
      res.end();		
      }).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate...!');

Speichern Sie die Datei und starten Sie Ihre Anwendung erneut mit dem folgenden Befehl.

node server.js
OR
npm start

Geben Sie in einem Webbrowser verschiedene URLs ein, die wie unten gezeigt angezeigt werden.

http://localhost:3333
http://localhost:3333/about
http://localhost:3333/tecmint/authors

Jetzt erstellen wir eine wirklich kleine Website für Tecmint mit einer Homepage, einer Über-Seite und einer Autorenseite. Auf diesen Seiten werden wir einige Informationen anzeigen.

Öffnen Sie die Datei server.js zum Bearbeiten und fügen Sie den folgenden Code hinzu.

//include http module 
var http = require('http');

http.createServer(function(req,res){
	//store URL in variable q_string

	var q_string = req.url;
	switch(q_string) {
		case '/':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Welcome To linux-console.net!')
                        	res.end();
                        	break;
                	case '/about':
                		res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('About Us');
                        	res.write('\n\n');
                        	res.write('linux-console.net - Best Linux HowTos on the Web.');
                        	res.write('\n');
                        	res.end('Find out more: https://linux-console.net/who-we-are/');
                        	break;
                	case '/tecmint/authors':
                        	res.writeHead(200, { 'Content-Type': 'text/plain' });
                        	res.write('Tecmint Authors');
                        	res.write('\n\n');
                        	res.end('Find all our authors here: https://linux-console.net/who-we-are/');
                        	break;
                	default:
                       		res.writeHead(404, { 'Content-Type': 'text/plain' });
                       		res.end('Not Found');
                        	break;
	}
}).listen(3333);
console.log('Server started on localhost:3333; press Ctrl-C to terminate....');

Im obigen Code haben wir gesehen, wie man Kommentare in Node.js mit den Zeichen // schreibt und außerdem Switch- und Case-Anweisungen zum Weiterleiten von Client-Anfragen eingeführt.

Speichern Sie die Datei, starten Sie den Server und versuchen Sie, auf die verschiedenen Seiten zuzugreifen.

Das war es fürs Erste! Weitere Informationen finden Sie auf den Websites von Nodejs und NPM.

Lesen Sie auch: So installieren Sie PM2, um Node.js-Apps unter Linux auszuführen

Abschluss

Node.js erreicht heute neue Höchststände und hat die Full-Stack-Entwicklung viel einfacher gemacht als zuvor. Die einzigartige Philosophie der ereignisgesteuerten Programmierung ermöglicht es Ihnen, blitzschnelle, effiziente und skalierbare Webprozesse und Server zu erstellen.

Als nächstes erklären wir Node.js-Frameworks, die seine nativen Fähigkeiten für die schnelle und zuverlässige Entwicklung von Web-/Mobilanwendungen erweitern. Teilen Sie Ihre Gedanken zu diesem Artikel über den Kommentarbereich unten mit.