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.
- 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.