Ilkinji Node.js programmasyny Linux-da nädip ýazmaly


Web ösüş tendensiýalary soňky birnäçe ýylda düýpgöter üýtgedi we web dörediji hökmünde, oýnuňyzyň başynda bolmak üçin iň täze tehnologiýalar bilen täzelenip durmak möhümdir.

JavaScript ol ýerdäki häzirki tendensiýa dilidir; doly stack döredijiler tarapyndan ulanylýan iň meşhur tehnologiýa.

JavaScript web çarçuwalary, mutlak netijelilik, howpsuzlyk we minimal çykdajylar bilen has çalt web ösüşiniň jadyly çözgüdine öwrüldi. Node JavaScript (köplenç Node.js ýa-da ýönekeý Node diýilýär) hakda eşidendigiňize ynanýaryn, internetde bu barada bir ses çykýar.

Bu makalada, Linux-da Node.js ulanyp, JavaScript-de programmalary işläp düzmek bilen nädip başlamalydygyny görkezerin. Firstöne ilki bilen Node.js. bilen gysgaça tanyşlyk edeliň.

Node.js näme?

Node.js, Chrome-nyň V8 JavaScript hereketlendirijisinde gurlan açyk çeşme, ýeňil we täsirli JavaScript iş wagty. Sapaklarsyz (bir sapakly) dizaýn edilen we Python ýa-da Event Machine, Ruby programmalary üçin hadysany gaýtadan işleýän kitaphananyň kömegi bilen gurlan tor hereketlendirijisi Twisted bilen şuňa meňzeş durmuşa geçirilýär.

Node.js-iň ýüregi hadysalara esaslanýan programmirleme esaslanýar; şonuň üçin programmist haýsy wakalaryň elýeterlidigine we olara nähili jogap bermelidigine düşünmeli.

Node.js-iň aşagyndaky paket dolandyryşy

Node.js, açyk çeşme kitaphanalarynyň ummasyz ýygyndysyny öz içine alýan JavaScript paket dolandyryjysyny we ekosistemasyny ulanýar, modully programma üpjünçiligini ösdürmegi goldaýar. Düwün paketlerini gurmak, paýlaşmak, koduňyzy paýlamak we dolandyrmak üçin ulanyp bilersiňiz paket baglylyklary.

Node.js aşakdaky sebäpler sebäpli güýçli we şonuň üçin möhümdir:

  • Bir programmanyň geçişini gowulandyrýan we hakyky dünýädäki web programmalary üçin ulalmagy goldaýan asynkron hadysalara esaslanýan, blokirlemeýän I/O modelini ulanýar.
  • singleeke sapakly, şonuň üçin islendik wagtda diňe 1 CPU ulanyp biler.
  • Node.js web programmasy, mysal üçin Nginx ýa-da Apache, doly web serweri.
  • Çaga emele gelmegi üçin çaga_process.fork() API arkaly sapaklary goldaýar, şeýle hem klaster modulyny hödürleýär.

Bu gysgaça giriş bilen, ilkinji JavaScript programmaňyzy ýazmaga höwesli bolmaly. Şeýle-de bolsa, ilki bilen, aşakdaky gollanmany ulanyp, Linux ulgamyňyza Node.js we NPM paketlerini gurmaly.

  1. Linux ulgamlarynda iň soňky Nodejs we NPM wersiýasyny guruň

Linux-da ilkinji Node.js programmasyny nädip döretmeli

Node.js guranyňyzdan soň, gitmäge taýyn bolarsyňyz. Ilki bilen programma faýllaryňyzy saklaýan katalog döretmekden başlaň.

$ sudo mkdir -p /var/www/myapp

Soňra şol kataloga geçiň we programmaňyz üçin package.json faýly dörediň. Bu faýl taslamaňyz üçin kiçijik resminama hökmünde kömek edýär: taslamanyň ady, awtory, bagly paketleriň sanawy we ş.m.

$ cd /var/www/myapp
$ npm init

Bu size birnäçe sorag berer, aşakda görkezilişi ýaly jogap beriň we [Enter] basyň. package.json iň möhüm zatlaryň aşakda düşündirilişi ýaly at we wersiýa meýdanlarydygyny unutmaň.

  • paketiň ady - programmaňyzyň ady, katalogyň adyna gabat gelmeýär.
  • wersiýasy - programmaňyzyň wersiýasy.
  • düşündiriş - programmaňyz üçin gysga düşündiriş ýazyň.
  • giriş nokady - ýerine ýetirilmeli deslapky paket faýlyny düzýär.
  • synag buýrugy - synag skriptini döretmek üçin ulanylýar (boş skript üçin defolt).
  • git ammary - Git ammaryny kesgitläň (bar bolsa).
  • açar sözler - beýleki ulanyjylar üçin npm-de paketiňizi kesgitlemek üçin möhüm sözleri belläň.
  • awtor - awtoryň adyny görkezýär, adyňyzy şu ýere goýuň.
  • ygtyýarnama - programma/paketiňiz üçin ygtyýarnama görkeziň.

Ondan soň server.js faýly dörediň.

$ sudo vi server.js

Aşakdaky kody göçüriň we goýuň.

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...!');

Ondan soň, aşakdaky buýrugy ulanyp, programmaňyzy başlaň.

$ node server.js
OR
$ npm start

Ondan soň, web brauzerini açyň we salgyňyzy ulanyp, “Salam dünýä!” Setirini çap etmekden başga hiç zat etmeýän web programmaňyza giriň:

http://localhost:3333

Aboveokardaky kodumyzda, işlenýän esasy waka, HTTP modulynyň üsti bilen HTTP haýyşy.

Node.js-da modullar JavaScript kitaphanalaryna has meňzeýär, programmaňyzda gaýtadan ulanyp boljak funksiýalary öz içine alýar. Içindäki modullary, otuz partiýa modulyny ulanyp ýa-da özüňiz döredip bilersiňiz.

Programmaňyzdaky modullara jaň etmek üçin zerur funksiýany görkezilişi ýaly ulanyň.

var http = require('http');

Http moduly goşulandan soň, belli bir portda diňleýän serwer döreder (bu mysalda 3333). Http.creatServer usuly argument hökmünde bir funksiýany kabul edýän (müşderi programma girmäge synanyşanda çagyrylýar) hakyky http serwerini döredýär.

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

Http.createServer funksiýasynyň iki argumenti bar: req (haýyş) we res (jogap). Req argumenti ulanyjynyň ýa-da müşderiniň haýyşy we res argumenti müşderä jogap iberýär.

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

Kodyň soňky bölegi, serwer işe girizilenden soň konsola çykyş iberýär.

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

Bu bölümde, marşrutizasiýa diýlip atlandyrylýan Node.js programmirlemesiniň iň möhüm düşünjelerinden birini düşündirerin (kompýuter ulgamyndaky marşrut bilen deňeşdirip bolar: torda traffik üçin ýol tapmak prosesi).

Bu ýerde marşrutlaşdyrmak müşderiniň islegini çözmegiň usulydyr; URL-de görkezilişi ýaly müşderiniň islän mazmunyna hyzmat etmek. URL bir ýol we talap setirinden durýar.

Müşderiniň haýyşy talap setirini görmek üçin aşakdaky setirleri jogabymyzda goşup bileris.

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

Aşakda täze kod

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...!');

Faýly ýazdyryň we aşakdaky buýrugy ulanyp, programmaňyzy täzeden başlaň.

$ node server.js
OR
$ npm start

Web brauzerinden aşakda görkezilişi ýaly dürli URL-ler ýazyň.

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

Indi, Tecmint üçin baş sahypa, hakda we awtorlar sahypalary bilen hakykatdanam kiçi bir web sahypasyny dörederis. Bu sahypalarda käbir maglumatlary görkezeris.

Redaktirlemek üçin server.js faýly açyň we aşakdaky kody goşuň.

//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....');

Aboveokardaky kodda, / nyşanlaryny ulanyp, Node.js-da teswir ýazmagyň usullaryny gördük, şeýle hem müşderiniň isleglerini ugrukdyrmak üçin wyklýuçatel we mysallar girizdik.

Faýly ýazdyryň, serweri işe giriziň we dürli sahypalara girmäge synanyşyň.

Häzirlikçe! NPM web sahypalarynda has giňişleýin maglumat tapyp bilersiňiz.

Node.js häzirki wagtda täze sepgitlere çykýar, doly derejeli ösüşi öňküsinden has aňsatlaşdyrdy. Wakalara esaslanýan programmirlemegiň özboluşly pelsepesi, ýyldyrym çalt, täsirli we ulaldylan web amallaryny we serwerlerini döretmäge mümkinçilik berýär.

Geljekde, web/ykjam programmalary çalt we ygtybarly ösdürmek üçin ýerli mümkinçiliklerini giňeldýän Node.js çarçuwalaryny düşündireris. Bu makala baradaky pikirleriňizi aşakdaky teswirler bölüminiň üsti bilen paýlaşyň.