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