Giunsa Pagsulat ang Imong Unang Node.js App sa Linux


Ang mga uso sa pag-uswag sa web grabe nga nabag-o sa miaging pipila ka tuig ug ingon usa ka developer sa web, aron naa sa tumoy sa imong dula, hinungdanon nga magpabilin nga na-update sa labing bag-ong mga teknolohiya.

Ang JavaScript mao ang kasamtangan nga uso sa programming language didto; kini sa walay duhaduha mao ang labing popular nga teknolohiya nga gigamit sa bug-os nga stack developers.

Ang JavaScript web frameworks nahimong usa ka mahika nga solusyon sa mas paspas nga web development nga adunay hingpit nga episyente, kaluwasan ug gamay nga gasto. Sigurado ako nga nakadungog ka bahin sa Node JavaScript (kasagaran gitawag nga Node.js o yano nga Node), adunay usa ka buzz bahin niini sa Internet.

Niini nga artikulo, ipakita ko kanimo kung unsaon pagsugod sa pagpalambo sa mga aplikasyon sa JavaScript gamit ang Node.js sa Linux. Apan una, kuhaa ang usa ka mubo nga pasiuna sa Node.js.

Unsa ang Node.js?

Ang Node.js usa ka bukas nga tinubdan, gaan ug episyente nga JavaScript runtime nga gitukod sa V8 JavaScript engine sa Chrome. Gidisenyo kini nga walay mga hilo (single-threaded) ug adunay susama nga pagpatuman sa Twisted, usa ka networking engine nga gitukod gamit ang Python o Event Machine, usa ka librarya sa pagproseso sa panghitabo alang sa mga programa sa Ruby.

Ang kasingkasing sa Node.js gibase sa programa nga gipalihok sa panghitabo; Busa ang usa ka programmer kinahanglan nga makasabut unsa nga mga panghitabo ang anaa ug unsaon pagtubag niini.

Pagdumala sa Pakete Ubos sa Node.js

Gigamit sa Node.js ang JavaScript package manager ug ecosystem nga gitawag og \npm, nga adunay daghang koleksyon sa libre nga open source nga mga librarya. Gisuportahan niini ang modular software development. Mahimo nimo kini gamiton sa pag-instalar sa mga node packages, pagpaambit, pag-apod-apod sa imong code ug pagdumala mga dependency sa package.

Ang Node.js usa ka gamhanan ug busa importante tungod sa mosunod nga mga rason:

  • Naggamit kini og asynchronous nga event-driven, non-blocking I/O model of execution, nga nagpauswag sa throughput sa usa ka application ug nagsuporta sa scalability para sa real-world web applications.
  • Kini usa ka sinulud nga sinulid mao nga magamit ra ang 1 nga CPU sa bisan unsang oras.
  • Ang node.js web application kay usa ka kompletong web server sama sa Nginx o Apache.
  • Gisuportahan niini ang mga thread pinaagi sa child_process.fork() API, para sa proseso sa pagpasanay sa bata, ug nagtanyag usab og cluster module.

Uban niining mubo nga pasiuna, kinahanglan ka nga matinguhaon sa pagsulat sa imong unang JavaScript nga programa. Apan, una sa tanan, kinahanglan nimo nga i-install ang Node.js ug NPM nga mga pakete sa imong Linux system gamit ang mosunod nga giya.

  1. I-install ang Pinakabag-o nga Nodejs ug NPM nga Bersyon sa Linux Systems

Giunsa Paghimo ang Imong Unang Node.js App sa Linux

Kung na-install na nimo ang Node.js, andam ka na nga moadto. Una magsugod pinaagi sa paghimo og usa ka direktoryo nga magtipig sa imong mga file sa aplikasyon.

$ sudo mkdir -p /var/www/myapp

Dayon balhin sa kana nga direktoryo ug paghimo og package.json file para sa imong aplikasyon. Kini nga payl makatabang isip gamay nga dokumentasyon para sa imong proyekto: ngalan sa proyekto, tagsulat, lista sa mga pakete nga gidepende niini ug uban pa.

$ cd /var/www/myapp
$ npm init

Mangutana kini kanimo og daghang mga pangutana, tubaga lang sama sa gihulagway sa ubos, ug pindota ang [Enter]. Timan-i nga ang labing importante nga mga butang sa package.json mao ang ngalan ug bersyon nga mga field sama sa gipatin-aw sa ubos.

  • ngalan sa package – ngalan sa imong app, default sa ngalan sa direktoryo.
  • bersyon – bersyon sa imong app.
  • paghulagway – pagsulat og mubo nga deskripsyon para sa imong app.
  • entry point – nagtakda sa default packages file nga ipatuman.
  • test command – gigamit sa paghimo og test script (default sa walay sulod nga script).
  • git repository – ipasabot ang usa ka Git repository (kung aduna kay usa).
  • mga keyword – itakda ang mga keyword, importante para sa ubang mga user nga mailhan ang imong package sa npm.
  • awtor – nagtino sa ngalan sa tagsulat, ibutang ang imong ngalan dinhi.
  • lisensya – magtakda ug lisensya para sa imong app/package.

Sunod, paghimo ug server.js file.

$ sudo vi server.js

Kopyaha ug idikit ang code sa ubos niini.

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

Sunod, sugdi ang imong aplikasyon gamit ang mosunod nga sugo.

$ node server.js
OR
$ npm start

Sunod, ablihi ang usa ka web browser ug i-access ang imong web app, nga wala’y mahimo gawas sa pag-print sa string nga Hello world!, gamit ang adres:

http://localhost:3333

Sa among code sa ibabaw, ang panguna nga panghitabo nga giproseso usa ka hangyo sa HTTP pinaagi sa module sa HTTP.

Sa Node.js, ang mga modules mas sama sa JavaScript library, kini adunay mga function nga mahimo nimong gamiton pag-usab sa imong app. Mahimo nimong gamiton ang in-built modules, katloan ka party modules o paghimo og imong kaugalingon.

Aron tawagan ang mga module sa imong app, gamita ang gikinahanglan nga function sama sa gipakita.

var http = require('http');

Kung maapil na ang module sa http, maghimo kini usa ka server nga maminaw sa usa ka partikular nga pantalan (3333 sa kini nga pananglitan). Ang http.creatServer nga pamaagi nagmugna sa aktuwal nga http server nga nagdawat sa usa ka function (nga gisangpit kung ang usa ka kliyente mosulay sa pag-access sa app) isip argumento.

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

Ang function sa http.createServer adunay duha ka argumento: req(request) ug res(response). Ang req argumento mao ang hangyo gikan sa usa ka user o kliyente ug ang res argumento nagpadala ug tubag sa kliyente.

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

Ang katapusan nga bahin sa code nagpadala sa output sa console, sa higayon nga ang server gilansad.

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

Niini nga seksyon, akong ipasabut ang usa sa labing importante nga mga konsepto ubos sa Node.js programming nga nailhan nga routing (itandi sa routing ubos sa computer networking: proseso sa pagpangita og agianan alang sa trapiko sa usa ka network).

Dinhi, ang routing usa ka teknik sa pagdumala sa hangyo sa kliyente; pag-alagad sa sulod nga gipangayo sa kliyente, ingon sa gipiho sa URL. Ang usa ka URL gilangkuban sa usa ka agianan ug string sa pangutana.

Aron matan-aw ang string sa pangutana sa hangyo sa kliyente, mahimo namong idugang ang mga linya sa ubos sa among tubag.

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

Sa ubos mao ang bag-ong 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...!');

I-save ang file ug sugdi pag-usab ang imong aplikasyon gamit ang mosunod nga sugo.

$ node server.js
OR
$ npm start

Gikan sa usa ka web browser, i-type ang lainlaing mga URL nga ipakita sama sa gipakita sa ubos.

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

Karon, maghimo kami usa ka gamay nga website alang sa Tecmint nga adunay usa ka homepage, bahin ug mga panid sa mga tagsulat. Atong ipakita ang pipila ka impormasyon niini nga mga panid.

Ablihi ang server.js file para sa pag-edit, ug idugang ang code sa ubos niini.

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

Sa code sa ibabaw, among nakita kung giunsa pagsulat ang mga komentaryo sa Node.js gamit ang // nga mga karakter ug gipaila usab ang switch ug mga pahayag sa kaso alang sa pagruta sa mga hangyo sa kliyente.

I-save ang file, sugdi ang server ug sulayi ang pag-access sa lainlaing mga panid.

Mao na sa pagkakaron! Makita nimo ang dugang nga impormasyon sa mga website sa NPM.

Ang Node.js nagsaka sa bag-ong mga kataas karon, kini naghimo sa full-stack nga pag-uswag nga labi ka dali kaysa kaniadto. Kini usa ka talagsaon nga pilosopiya sa programa nga gipatuyok sa panghitabo nga makapahimo kanimo sa paghimo og kusog nga kilat, episyente ug scalable nga mga proseso sa web ug mga server.

Sunod, among ipasabot ang Node.js nga mga gambalay, nga nagpalapad sa iyang lumad nga kapabilidad alang sa dali ug kasaligan nga pagpalambo sa web/mobile nga mga aplikasyon. Ipaambit ang imong mga hunahuna bahin sa kini nga artikulo pinaagi sa seksyon sa komento sa ubos.