Kif Tikteb l-Ewwel App Node.js Tiegħek fil-Linux


It-tendenzi tal-iżvilupp tal-web inbidlu drastikament matul l-aħħar ftit snin u bħala żviluppatur tal-web, biex tkun fil-quċċata tal-logħba tiegħek, huwa importanti li tibqa 'aġġornata bl-aħħar teknoloġiji.

JavaScript huwa l-lingwa tal-ipprogrammar tat-tendenza attwali hemmhekk; hija mingħajr dubju l-aktar teknoloġija popolari użata mill-iżviluppaturi tal-munzell sħiħ.

L-oqfsa tal-web JavaScript saru soluzzjoni maġika għal żvilupp tal-web aktar mgħaġġel b'effiċjenza assoluta, sikurezza u spejjeż minimizzati. Jiena pjuttost ċert li smajt dwar Node JavaScript (komunement imsejjaħ Node.js jew sempliċement Node), hemm buzz dwar dan fuq l-Internet.

F'dan l-artikolu, ser nuruk kif tibda bl-iżvilupp ta 'applikazzjonijiet f'JavaScript billi tuża Node.js fil-Linux. Imma l-ewwel, ejja nġibu introduzzjoni qasira għal Node.js.

X'inhu Node.js?

Node.js huwa runtime ta' JavaScript sors miftuħ, ħafif u effiċjenti mibni fuq il-magna JavaScript V8 ta' Chrome. Huwa ddisinjat mingħajr ħjut (b'ħajt wieħed) u għandu implimentazzjoni simili għal Twisted, magna ta 'netwerking mibnija bl-użu ta' Python jew Event Machine, librerija tal-ipproċessar tal-avvenimenti għall-programmi Ruby.

Il-qalba ta 'Node.js hija bbażata fuq programmazzjoni mmexxija mill-avvenimenti; programmatur għandu għalhekk jifhem liema avvenimenti huma disponibbli u kif iwieġeb għalihom.

Ġestjoni tal-Pakketti Taħt Node.js

Node.js juża l-maniġer tal-pakketti JavaScript u l-ekosistema msejħa \npm, li fiha kollezzjoni immensa ta’ libreriji b’sors miftuħ b’xejn. Jappoġġa għall-iżvilupp ta’ softwer modulari. Tista’ tużah biex tinstalla pakketti ta’ nodi, taqsam, tqassam il-kodiċi tiegħek u tmexxi dipendenzi tal-pakkett.

Node.js huwa b'saħħtu u għalhekk importanti minħabba r-raġunijiet li ġejjin:

  • Juża mudell ta' eżekuzzjoni I/O asinkroniku mmexxi mill-avvenimenti, li ma jimblokkax, li jtejjeb il-fluss ta' applikazzjoni u jappoġġja l-iskalabbiltà għal applikazzjonijiet tal-web tad-dinja reali.
  • Huwa b'kamin wieħed u għalhekk jista' juża CPU 1 f'kull ħin partikolari.
  • Applikazzjoni tal-web node.js hija server tal-web komplut pereżempju Nginx jew Apache.
  • Jappoġġja l-ħjut permezz tal-API child_process.fork(), għall-proċess tat-tfal li jbid, u joffri wkoll modulu cluster.

B'din l-introduzzjoni qasira, trid tkun ħerqan biex tikteb l-ewwel programm JavaScript tiegħek. Madankollu, l-ewwelnett, għandek bżonn tinstalla pakketti Node.js u NPM fis-sistema Linux tiegħek billi tuża l-gwida li ġejja.

  1. Installa l-Aħħar Verżjoni Nodejs u NPM fis-Sistemi Linux

Kif Oħloq l-Ewwel App Node.js Tiegħek fil-Linux

Ladarba tkun installat Node.js, tkun lest biex tmur. L-ewwel ibda billi toħloq direttorju li jaħżen il-fajls tal-applikazzjoni tiegħek.

$ sudo mkdir -p /var/www/myapp

Imbagħad mur f'dak id-direttorju u oħloq fajl package.json għall-applikazzjoni tiegħek. Dan il-fajl jgħin bħala dokumentazzjoni żgħira għall-proġett tiegħek: isem tal-proġett, awtur, lista ta 'pakketti li jiddependi fuqhom u l-bqija.

$ cd /var/www/myapp
$ npm init

Dan jistaqsik numru ta' mistoqsijiet, sempliċement wieġeb kif deskritt hawn taħt, u agħfas [Enter]. Innota li l-aktar affarijiet importanti fil-package.json huma l-oqsma tal-isem u l-verżjoni kif spjegat hawn taħt.

  • l-isem tal-pakkett – l-isem tal-app tiegħek, default għall-isem tad-direttorju.
  • verżjoni – verżjoni tal-app tiegħek.
  • deskrizzjoni – ikteb deskrizzjoni qasira għall-app tiegħek.
  • punt tad-dħul – jistabbilixxi l-fajl tal-pakketti default li għandu jiġi esegwit.
  • kmand tat-test – użat biex jinħoloq skript tat-test (defaults għal skript vojt).
  • repożitorju Git – iddefinixxi repożitorju Git (jekk għandek wieħed).
  • keywords – issettja kliem ewlieni, importanti għal utenti oħra biex jidentifikaw il-pakkett tiegħek fuq npm.
  • l-awtur – jispeċifika l-isem tal-awtur, poġġi ismek hawn.
  • liċenzja – speċifika liċenzja għall-app/pakkett tiegħek.

Sussegwentement, oħloq fajl server.js.

$ sudo vi server.js

Ikkopja u waħħal il-kodiċi hawn taħt fiha.

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

Sussegwentement, ibda l-applikazzjoni tiegħek billi tuża l-kmand li ġej.

$ node server.js
OR
$ npm start

Sussegwentement, iftaħ web browser u aċċessa għall-web app tiegħek, li ma tagħmel xejn ħlief tipprintja s-sekwenza Hello world!, billi tuża l-indirizz:

http://localhost:3333

Fil-kodiċi tagħna hawn fuq, l-avveniment ewlieni li qed jiġi pproċessat huwa talba HTTP permezz tal-modulu HTTP.

F'Node.js, il-moduli huma aktar bħal libreriji JavaScript, fihom funzjonijiet li tista 'terġa' tuża fl-app tiegħek. Tista 'tuża moduli in-built, tletin modulu tal-parti jew toħloq tiegħek.

Biex issejjaħ moduli fl-app tiegħek, uża l-funzjoni tal-ħtieġa kif muri.

var http = require('http');

Ladarba l-modulu http huwa inkluż, se joħloq server li jisma 'fuq port partikolari (3333 f'dan l-eżempju). Il-metodu http.creatServer joħloq is-server http attwali li jaċċetta funzjoni (li tiġi invokata meta klijent jipprova jaċċessa l-app) bħala argument.

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

Il-funzjoni f'http.createServer għandha żewġ argumenti: req(request) u res(response). L-argument req huwa t-talba minn utent jew klijent u l-argument res jibgħat tweġiba lill-klijent.

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

Il-parti finali tal-kodiċi tibgħat output lill-console, ladarba s-server jitnieda.

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

F'din it-taqsima, ser nispjega wieħed mill-aktar kunċetti importanti taħt l-ipprogrammar Node.js magħruf bħala routing (komparabbli mar-routing taħt netwerking tal-kompjuter: proċess ta 'sejba ta' mogħdija għat-traffiku f'netwerk).

Hawnhekk, ir-routing huwa teknika ta 'ġestjoni tat-talba ta' klijent; jaqdi l-kontenut li l-klijent ikun talab għalih, kif speċifikat fil-URL. URL huwa magħmul minn mogħdija u sekwenza ta' mistoqsijiet.

Biex tara s-sekwenza ta' mistoqsijiet tat-talba ta' klijent, nistgħu nżidu l-linji hawn taħt fir-rispons tagħna.

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

Hawn taħt hemm il-kodiċi l-ġdid.

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

Issejvja l-fajl u ibda l-applikazzjoni tiegħek mill-ġdid billi tuża l-kmand li ġej.

$ node server.js
OR
$ npm start

Minn web browser, ittajpja URLs differenti li se jintwerew kif muri hawn taħt.

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

Issa, se noħolqu websajt tassew żgħira għal Tecmint b'homepage, dwar u paġni tal-awturi. Aħna ser nuru xi informazzjoni fuq dawn il-paġni.

Iftaħ il-fajl server.js għall-editjar, u żid fih il-kodiċi hawn taħt.

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

Fil-kodiċi ta 'hawn fuq, rajna kif tikteb kummenti f'Node.js billi tuża l-karattri // u introduċejna wkoll dikjarazzjonijiet ta' swiċċ u każ għar-rotot tat-talbiet tal-klijenti.

Issejvja l-fajl, ibda s-server u ipprova jaċċessa l-paġni varji.

Dak hu għalissa! Tista' ssib aktar informazzjoni fuq il-websajts tal-NPM.

Node.js qed jogħla għal quċċati ġodda llum, għamel l-iżvilupp full-stack ħafna aktar faċli minn qabel. Hija l-filosofija unika ta 'programmazzjoni mmexxija mill-avvenimenti tippermettilek toħloq proċessi u servers tal-web veloċi, effiċjenti u skalabbli.

Sussegwentement, se nispjegaw l-oqfsa Node.js, li jestendu l-kapaċitajiet indiġeni tiegħu għall-iżvilupp rapidu u affidabbli tal-applikazzjonijiet tal-web/mobbli. Aqsam il-ħsibijiet tiegħek dwar dan l-artikolu permezz tat-taqsima tal-kummenti hawn taħt.