Bii o ṣe le Kọ Node.js App Rẹ akọkọ ni Linux


Awọn aṣa idagbasoke wẹẹbu ti yipada ni agbara ni awọn ọdun diẹ to ṣẹṣẹ ati bi olugbala wẹẹbu kan, lati wa ni oke ere rẹ, o ṣe pataki lati wa ni imudojuiwọn pẹlu awọn imọ-ẹrọ tuntun.

JavaScript jẹ ede siseto aṣa lọwọlọwọ lọwọlọwọ nibẹ; laisi iyemeji imọ-ẹrọ ti o gbajumọ julọ ti a lo nipasẹ awọn olupilẹṣẹ akopọ ni kikun.

Awọn ilana wẹẹbu JavaScript ti di ojutu idan kan si idagbasoke wẹẹbu yiyara pẹlu ṣiṣe ṣiṣe pipe, aabo ati awọn idiyele ti o dinku. Mo dajudaju pe o ti gbọ nipa JavaScript Node (eyiti a tọka si bi Node.js tabi Node lasan), ariwo kan wa nipa rẹ lori Intanẹẹti.

Ninu nkan yii, Emi yoo fihan ọ bi o ṣe le bẹrẹ pẹlu awọn ohun elo idagbasoke ni JavaScript nipa lilo Node.js ni Linux. Ṣugbọn akọkọ, jẹ ki a gba ifihan kukuru si Node.js.

Kini Node.js?

Node.js jẹ orisun ṣiṣi, iwuwo fẹẹrẹ ati ṣiṣe asiko JavaScript daradara ti a ṣe lori ẹrọ V8 JavaScript ti Chrome. A ṣe apẹrẹ laisi awọn okun (onirọ-tẹle) ati pe o ni imuse iru si Twisted, ẹrọ netiwọki ti a kọ nipa lilo Python tabi Ẹrọ Iṣẹlẹ, ile-ikawe ṣiṣe iṣẹlẹ fun awọn eto Ruby.

Okan ti Node.js da lori siseto eto ti iṣẹlẹ; nitorinaa eto yẹ ki o loye iru awọn iṣẹlẹ ti o wa ati bii o ṣe le dahun si wọn.

Iṣakoso Isakojọpọ Node.js

Node.js lo oluṣakoso package JavaScript ati eto abemi ti a pe ni\"npm", eyiti o ni akopọ nla ti awọn ile-ikawe orisun ṣiṣi ọfẹ. O ṣe atilẹyin fun idagbasoke sọfitiwia modulu. O le lo lati fi awọn idii ipade, pinpin, pinpin koodu rẹ ati ṣakoso dependencies package.

Node.js jẹ alagbara ati nitorinaa o ṣe pataki nitori awọn idi wọnyi:

  • O nlo asynchronous iṣẹlẹ ti o ni iwakọ, awoṣe I/O ti kii ṣe idiwọ ti ipaniyan, eyiti o mu ilọsiwaju ohun elo ṣiṣẹ ati ṣe atilẹyin idiwọn fun awọn ohun elo wẹẹbu gidi. O ti wa ni ẹyọkan nitorinaa o le lo 1 Sipiyu nigbakugba ti a fifun.
  • Ohun elo wẹẹbu node.js jẹ olupin wẹẹbu ti o pari fun apẹẹrẹ Nginx tabi Apache.
  • O ṣe atilẹyin awọn okun nipasẹ ọmọ_process.fork() API, fun fifin ilana ọmọde, ati tun nfun modulu iṣupọ kan.

Pẹlu ifihan kukuru yii, o gbọdọ ni itara lati kọ eto JavaScript akọkọ rẹ. Sibẹsibẹ, awọn ohun akọkọ ni akọkọ, o nilo lati fi awọn idii Node.js ati NPM sori ẹrọ Linux rẹ nipa lilo itọsọna atẹle.

  1. Fi Nodejs Tuntun ati Ẹya NPM sii ni Awọn ọna Linux

Bii o ṣe Ṣẹda Ohun elo Node.js akọkọ rẹ ni Linux

Lọgan ti o ba ti fi sii Node.js, o ti ṣetan lati lọ. Akọkọ bẹrẹ nipa ṣiṣẹda itọsọna kan ti yoo tọju awọn faili ohun elo rẹ.

$ sudo mkdir -p /var/www/myapp

Lẹhinna gbe sinu itọsọna yẹn ki o ṣẹda faili package.json fun ohun elo rẹ. Faili yii ṣe iranlọwọ bi iwe kekere fun iṣẹ akanṣe rẹ: orukọ iṣẹ akanṣe, onkọwe, atokọ ti awọn idii ti o gbarale ati bẹbẹ lọ.

$ cd /var/www/myapp
$ npm init

Eyi yoo beere lọwọ rẹ awọn ibeere pupọ, jiroro ni idahun bi a ti ṣalaye rẹ ni isalẹ, ki o tẹ [Tẹ]. Akiyesi pe awọn ohun pataki julọ ninu package.json ni orukọ ati awọn aaye ẹya bi a ti salaye ni isalẹ.

  • Orukọ package - orukọ ohun elo rẹ, awọn aiyipada si orukọ itọsọna naa.
  • ẹya - ẹya ti ohun elo rẹ.
  • apejuwe - kọ apejuwe kukuru fun ohun elo rẹ.
  • aaye titẹsi - ṣeto faili awọn idii aiyipada lati ṣee ṣe.
  • aṣẹ idanwo - lo lati ṣẹda iwe afọwọkọ kan (awọn aiyipada si iwe afọwọkọ ofo).
  • ibi ipamọ git - ṣalaye ibi ipamọ Git kan (ti o ba ni ọkan).
  • awọn ọrọ-ọrọ - ṣeto awọn ọrọ-ọrọ, pataki fun awọn olumulo miiran lati ṣe idanimọ package rẹ ni alẹ
  • onkọwe - ṣafihan orukọ onkọwe, fi orukọ rẹ si ibi.
  • iwe-aṣẹ - ṣọkasi iwe-aṣẹ fun ohun elo/package rẹ.

Nigbamii, ṣẹda server.js faili.

$ sudo vi server.js

Daakọ ati lẹẹ koodu ti o wa ni isalẹ ninu rẹ.

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

Nigbamii, bẹrẹ ohun elo rẹ ni lilo pipaṣẹ atẹle.

$ node server.js
OR
$ npm start

Nigbamii, ṣii ẹrọ aṣawakiri wẹẹbu kan ki o wọle si ohun elo ayelujara rẹ, eyiti ko ṣe nkan miiran ju titẹ sita okun naa ”Kaabo agbaye!”, Ni lilo adirẹsi naa:

http://localhost:3333

Ninu koodu wa loke, iṣẹlẹ akọkọ ti n ṣakoso ni ibeere HTTP nipasẹ module HTTP.

Ni Node.js, awọn modulu dabi diẹ sii awọn ile-ikawe JavaScript, wọn ni awọn iṣẹ ti o le tun lo ninu ohun elo rẹ. O le lo awọn modulu ti a ṣe sinu rẹ, ọgbọn awọn modulu ẹgbẹ tabi ṣẹda tirẹ.

Lati pe awọn modulu ninu app rẹ, lo iṣẹ ti n beere bi o ti han.

var http = require('http');

Lọgan ti o wa pẹlu module http, yoo ṣẹda olupin ti o tẹtisi lori ibudo kan pato (3333 ninu apẹẹrẹ yii). Ọna http.creatServer ṣẹda olupin http gangan eyiti o gba iṣẹ kan (eyiti o pe nigbati alabara kan gbiyanju lati wọle si ohun elo naa) bi ariyanjiyan.

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

Iṣẹ ni http.createServer ni awọn ariyanjiyan meji: req (ibeere) ati res (idahun). Ariyanjiyan req ni ibeere lati ọdọ olumulo tabi alabara kan ati ariyanjiyan res n fi esi ranṣẹ si alabara naa.

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

Apá ikẹhin ti koodu naa firanṣẹ iṣiṣẹ si kọnputa, ni kete ti a ṣe ifilọlẹ olupin naa.

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

Ni apakan yii, Emi yoo ṣalaye ọkan ninu awọn imọran pataki julọ labẹ siseto Node.js ti a mọ bi afisona (ti o ṣe afiwe si afisona labẹ nẹtiwọọki kọnputa: ilana ti wiwa ọna kan fun ijabọ ni nẹtiwọọki kan).

Nibi, afisona jẹ ilana ti mimu ibeere alabara kan; sìn akoonu ti alabara beere fun, bi a ti ṣalaye ninu URL naa. URL kan ni ọna ati okun ibeere.

Lati wo okun ibeere ibeere alabara kan, a le ṣafikun awọn ila ni isalẹ ninu idahun wa.

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

Ni isalẹ ni koodu tuntun.

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

Fipamọ faili naa ki o bẹrẹ ohun elo rẹ lẹẹkansi ni lilo pipaṣẹ atẹle.

$ node server.js
OR
$ npm start

Lati aṣawakiri wẹẹbu kan, tẹ awọn URL oriṣiriṣi ti yoo han bi o ti han ni isalẹ.

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

Bayi, a yoo ṣẹda oju opo wẹẹbu kekere gaan fun Tecmint pẹlu oju-iwe akọọkan, nipa ati awọn oju-iwe awọn onkọwe. A yoo ṣe afihan diẹ ninu alaye lori awọn oju-iwe wọnyi.

Ṣii faili server.js fun ṣiṣatunkọ, ki o ṣafikun koodu ti o wa ni isalẹ ninu rẹ.

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

Ninu koodu ti o wa loke, a ti rii bii a ṣe le kọ awọn asọye ni Node.js nipa lilo awọn ohun kikọ / ati tun ṣafihan iyipada ati awọn alaye ọran fun lilọ awọn ibeere alabara.

Fipamọ faili naa, bẹrẹ olupin ati gbiyanju iraye si awọn oju-iwe oriṣiriṣi.

Iyẹn ni fun bayi! O le wa alaye diẹ sii ni awọn oju opo wẹẹbu NPM.

Node.js nyara si awọn giga tuntun loni, o ti ṣe idagbasoke akopọ kikun rọrun pupọ ju ti iṣaaju lọ. O jẹ imoye alailẹgbẹ ti siseto ti iṣakoso iṣẹlẹ n jẹ ki o ṣẹda iyara ina, ṣiṣe daradara ati iwọn awọn ilana wẹẹbu ati awọn olupin.

Nigbamii ti, a yoo ṣalaye awọn ilana Node.js, eyiti o faagun awọn agbara abinibi rẹ fun yarayara ati igbẹkẹle idagbasoke awọn ohun elo wẹẹbu/alagbeka. Ma ṣe pin awọn ero rẹ nipa nkan yii nipasẹ apakan asọye ni isalẹ.