Réamhrá
Nuair a iarraidh a fhoghlaim faoi gréasáin
forbartha, de ghnáth feicimid go bhfuil an ceann tosaigh i bhfad níos inrochtana ná an ceann cúil. Tá go leor cúiseanna leis seo, go háirithe an mothú ar aiseolas láithreach a thagann as athrú ar ghné áirithe de leathanach sa chód, agus ag tabhairt faoi deara an t-athrú atá á chur i bhfeidhm ar an suíomh Gréasáin. Is minic a bhíonn an t-aiseolas seo cabhrach do thosaitheoirí, toisc go gcuireann sé ar a gcumas a gcód a choigeartú agus foghlaim óna gcuid botún. Ar an drochuair, ní hamhlaidh atá leis an inneall: go minic, déantar méid suntasach oibre chun an timpeallacht a chur ar bun roimh ré, agus na spleáchais a theastaíonn a shuiteáil chun teachtaireacht shimplí “Dia duit a Dhomhan” a chur ar an teirminéal., tá go leor dul chun cinn á dhéanamh i gcónaí sa phobal foinse oscailte i dtreo an phróisis forbartha creataí a éascú, agus feabhas a chur ar thaithí an fhorbróra Is sampla maith de seo é an creat seo ná teicneolaíocht an-chumasach a dhéanann scríbhneoireacht ar thaobh an fhreastalaí cód i Javascript áisiúil, agus cuireann sé éagsúlacht na n-uirlisí agus gnéithe ionsuite a dhéanann idirdhealú idir é agus a chuid iomaitheoirí San Airteagal seo, déanfaimid iniúchadh ar NodeJs agus a éiceachóras, le cur chuige láimhe, ag tógáil tionscadal lánfheidhmiúil.
Cad a thógfaimid?
Is tionscadal chun tosaigh iad feidhmchláir ToDo do thosaitheoirí atá ag foghlaim forbairt tosaigh. Sin é an fáth gur shocraigh muid API liosta Todo a thógáil. Cuirfidh sé seo ar ár gcumas buanseasmhacht sonraí a chur lenár gcomhéadan, agus tabharfaidh sé an cumas dúinn na sonraí seo a ionramháil (trí thodos a chur leis, a nuashonrú, a scriosadh, etc….).
Is féidir an cód deiridh a fháil anseo.
Ár n-uirlisí
Bainfimid úsáid as cruach teicneolaíochta simplithe don tionscadal seo. Is féidir é a mheas mar leagan íosta de go leor uirlisí a gheobhaidh tú i dtionscadail fhíorshaolacha, ar an gcúis go bhfuil na smaointe ardleibhéil mar an gcéanna. Níl sonraí maidir le cur chun feidhme agus rogha sainuirlis thar uirlis eile tábhachtach chun tús a chur leis.
-
Tá NodeJs, mar a luadh muid, ar cheann de na creataí Javascript is mó tóir chun feidhmchláir a thógáil ar thaobh an fhreastalaí.
-
Is creat íosta Javascript é ExpressJs a úsáidtear ar bharr NodeJS. Cuireann sé dlús leis an bpróiseas forbartha trí úsáid a bhaint as go leor gnéithe ionsuite. Úsáidtear é freisin mar bhealach chun cleachtais forbartha i dtionscadail NodeJS a chaighdeánú chun a úsáid d'innealtóirí a éascú.
-
Is bunachar sonraí simplí i gcuimhne é LowDB. Ligeann a simplíocht dúinn conas idirghníomhú le bunachar sonraí i dtionscadal NodeJs a thaispeáint, gan déileáil le hábhair níos forbartha mar imscaradh agus cumraíochtaí.
Anois agus na huirlisí go léir a úsáidfimid aitheanta againn, déanaimis ár n-eochairchláir a bhaint amach agus tosú ar an gcódú!
Suiteáil
Tá Nód ar fáil ar gach ardán. Is féidir gach treoir suiteála a fháil ar an láithreán gréasáin oifigiúil. Ba cheart d’úsáideoirí Windows a chinntiú go gcuirfidh siad nód cosán chuig athróga timpeallachta leis ionas gur féidir é a úsáid ar an líne ordaithe.
Beidh orainn npm a shuiteáil freisin. Is é Npm an bainisteoir pacáiste caighdeánach do NodeJs. Cuirfidh sé ar ár gcumas ár spleáchais tionscadail a bhainistiú. Is féidir an treoir suiteála a fháil anseo.
Tús curtha leis an tionscadal
Téigh chuig an nasc agus clónáil an tionscadal tosaithe:
Is stór tosaigh simplí é seo dár dtionscadal. Cuimsíonn sé na spleáchais go léir a úsáidfimid mar aon le struchtúr comhaid an tionscadail. Míneoimid gach eilimint nuair a shroichfear é. Oscail do chríochfort, déan nascleanúint chuig cosán an tionscadail agus rith an t-ordú:
npm install
Suiteálfaidh sé seo spleáchais uile an tionscadail atá sonraithe sa chomhad package.json. Is é package.json an comhad a fhaightear ag bun aon tionscadail Javascript/NodeJs, tá meiteashonraí ann maidir leis an dara ceann agus úsáidtear é chun gach spleáchas tionscadail, scripteanna agus leaganacha a bhainistiú.
Tar éis gach spleáchas a shuiteáil, is féidir linn ár n-iarratas a thosú:
npm run start
Is script é “tús” a shonraigh muid sa phacáiste. json comhad. Sonraíonn sé an comhad iontrála chuig ár n-iarratas, arb é app.js inár gcás.
Ba cheart go mbeadh an teachtaireacht seo a leanas le feiceáil i do theirminéal anois:
Ciallaíonn sé seo gur thosaigh ár bhfreastalaí go rathúil, agus go bhfuil sé ag éisteacht le haghaidh aon iarratais a chuirtear chuig port 3000. Breathnaímid ar app.js agus mínigh cad atá ag tarlú anseo:
Is é App.js ár gcomhad iontrála tionscadail (agus an t-aon cheann ag an bpointe seo). Déanaimid feidhmchlár sainráite darb ainm aip a chur ar an toirt, sonraigh go láimhseálfar gach iarratas a bhfuil an modh http “GET” agus an fochonair ‘/’ aige ar an mbealach seo, cuir isteach feidhm ar a dtugtar lárearraí, a áiríonn an réad iarratais agus freagartha mar paraiméadair. Tá sé seo ríthábhachtach, ós rud é go bhfuil an fhaisnéis go léir is gá chun é a láimhseáil san iarratas (paraiméadair, comhlacht iarratais, ceanntásca iarratais, etc.), agus is é an réad freagartha an ceann a sheolfar ar ais chuig an gcliant. Tosaímid ach an teachtaireacht “Dia duit ar domhan” a sheoladh. Ina dhiaidh sin déanaimid ár n-iarratas éisteacht le haon iarratais a thagann isteach chuig an gcalafort sonraithe (inár gcás 3000), agus logáil isteach an teachtaireacht “Éist le port 3000” chun a chur in iúl go bhfuil ár n-iarratas ar bun agus réidh le hiarratais a fháil.
Oscail do chríochfort agus sa bharra naisc clóscríobh “localhost: 3000/”, agus brúigh Iontráil. Is é seo an cosán sonraithe is féidir linn a úsáid chun teacht ar ár bhfreastalaí go háitiúil. Gheobhaidh tú an teachtaireacht seo a leanas:
Cumraíocht bunachar sonraí
Is bunachar sonraí foinse oscailte é Lowdb atá éasca le húsáid, agus níl aon socrú sonrach ag teastáil uaidh. Is é an smaoineamh ginearálta taobh thiar de na sonraí go léir a stóráil i gcomhad json áitiúil. Tar éis LowDB a shuiteáil (rud a rinneadh nuair a shuiteáileamar na spleáchais go léir), is féidir linn an cód seo a leanas a chur le db.js:
Tá an cód seo cosúil go leor leis an gceann a fuarthas ar dhoiciméadú oifigiúil LowDB. Rinneamar é a tweaked beagán le haghaidh ár gcás úsáide féin. Mínímid é líne ar líne:
Is iad na chéad chúpla líne ná na spleáchais riachtanacha a allmhairiú. Is feidhm áirgiúlachta é “join” atá ar fáil sa mhodúl “conair”. Tá sé ar cheann de na modúil lárnacha de NodeJs a thairgeann go leor modhanna chun déileáil le cosáin agus iad a láimhseáil. Is iad “Íseal” agus “JSONFile” an dá rang a nochtar ag LowDB. Cruthaíonn an chéad cheann an sampla comhaid json ina mbeidh ár gcuid sonraí. Cruthaíonn an dara ceann an sampla bunachar sonraí iarbhír a ghníomhóidh air. Ar deireadh, tá “lodash” ar cheann de na leabharlanna javascript is mó a úsáidtear a thairgeann raon leathan d’fheidhmeanna fóntais le haghaidh tascanna ríomhchlárú comónta. Cuirimid é lenár sampla bunachar sonraí chun cur ar ár gcumas a ardmhodhanna a úsáid chun ár sonraí a láimhseáil.
Ar dtús, sonraímid an cosán don chomhad db.json. Is é an comhad a mbeidh ár sonraí ann, agus a chuirfear ar aghaidh chuig LowDB. Mura bhfaightear an comhad ag an gcosán sonraithe, cruthóidh LowDB ceann.
Ansin cuirimid an cosán comhaid ar aghaidh chuig an adapter LowDB, agus cuirimid ar aghaidh chuig ár n-ásc nua bhunachar sonraí LowDB é. Is féidir an athróg “db” a úsáid ansin chun cumarsáid a dhéanamh lenár mbunachar sonraí. Nuair a chruthaítear sampla an bhunachair shonraí, léimid ón gcomhad json trí úsáid a bhaint as db.read(). Socróidh sé seo an réimse “sonraí” inár gcás bunachar sonraí ionas gur féidir linn teacht ar ábhar an bhunachair shonraí. Fógra go raibh “fanacht” againn roimh an líne seo. Tá sé seo le sonrú go bhféadfadh go dtógfaidh an treoir seo méid anaithnid ama le réiteach, agus go gcaithfidh próiseas NodeJs fanacht lena fhorghníomhú sula leanfar ar aghaidh leis an gcuid eile den chód. Déanaimid é seo toisc go n-éilíonn an oibríocht léitheoireachta rochtain chuimhne ar an gcomhad sonraithe, agus braitheann an t-am chun oibríocht den chineál seo a dhéanamh ar do shonraíochtaí meaisín.
Anois go bhfuil rochtain againn ar an réimse sonraí, socróimid é mar rud ina bhfuil sraith fholamh de phoist, nó ina áit sin, déanaimid seiceáil an bhfuil aon sonraí roimhe seo sa chomhad agus socróimid an t-eagar folamh mura bhfuil sé amhlaidh.
Mar fhocal scoir, déanaimid db.write() a fhorghníomhú chun na modhnuithe a rinneamar a chur i bhfeidhm ar na sonraí, agus easpórtálaimid an bunachar sonraí ionas gur féidir é a úsáid i gcomhaid eile inár dtionscadal.
Sreabhadh oibre Iarratas/Freagartha Ginearálta
Smaoinigh ar an léaráid seo a leanas:
Léiríonn sé an ailtireacht ghinearálta a chuirtear i bhfeidhm i raidhse feidhmchláir inneall a tógadh le NodeJs/Express. Ní hamháin go gceadóidh tuiscint ar an sreabhadh oibre ginearálta taobh thiar d'iarratas a láimhseáil duit feidhmchláir NodeJ a thógáil agus a struchtúrú, ach cuirfidh sé ar do chumas na coincheapa seo a aistriú go beagnach aon stack teicniúil de do rogha féin. Déanfaimid iniúchadh ar na sraitheanna éagsúla a chuireann isteach ar an bpróiseas seo, agus míneoimid a róil:
## Ciseal Iarratas HTTP
Is é seo an chéad chiseal inár n-iarratas, samhlaigh é mar gheata a fhaigheann raon leathan d’iarratais éagsúla ag teacht ó chliaint éagsúla, déantar anailís ar gach iarratas ansin agus cuirtear ar aghaidh chuig an gcuid tiomnaithe den iarratas é chun é a láimhseáil.
-
Ródairí: anseo táimid ag tagairt do ródairí Express, ach is féidir an coincheap seo a fháil i go leor creataí backend. Is bealach é ródairí chun an dáileadh loighciúil inár loighic gnó a chur i bhfeidhm ar ár gcód, rud a chiallaíonn go ndéantar gach sraith eilimintí a roinneann gnéithe den chineál céanna a láimhseáil leis an iontráil chéanna, agus is féidir iad a scaradh ón gcuid eile de na tacair. Tá sé de bhuntáiste aige seo go mbeidh gach comhpháirt den chód neamhspleách ar na cinn eile, agus go mbeidh sé níos éasca é a chothabháil agus a leathnú. Go sonrach, agus mar shampla, is é an ródaire céanna a láimhseálfaidh gach iarratas a chomhlíonfaidh coinníollacha an chosáin chomhroinnte url “/post”. Ag brath ar a modh http (GET, POST, etc. ), úsáidfear rialtóir eile.
-
Rialaitheoirí: faigheann rialtóir iarratais scagtha ó ródairí, cuireann sé próiseáil bhreise i bhfeidhm, agus glaonna ar na modhanna seirbhíse oiriúnacha.
Sraith Loighic Gnó
Tá an ciseal seo uathúil ag brath ar chásanna úsáide sonracha an iarratais, agus an loighic ghnó taobh thiar de.
-
Seirbhísí: Is sraith modhanna iad seirbhísí a chuimsíonn croíloighic an fheidhmchláir. Idirghníomhaíonn siad leis an mbunachar sonraí freisin trí úsáid a bhaint as ORMs/ODMs.).
-
Seirbhísí tríú páirtí: roghnaíonn go leor feidhmchlár nua-aimseartha cuid de loighic an fheidhmchláir a tharmligean chuig seirbhísí tiomnaithe a bhfuil rochtain orthu trí API. Is féidir le seirbhísí den sórt seo a bheith ina seirbhísí láimhseála íocaíochta, stóráil comhad statach, fógraí, agus eile.
-
ODM/ORM: Feidhmíonn ORManna agus ODManna mar mheánfhir idir na seirbhísí agus an bunachar sonraí. Is é an ról atá acu astarraingt ardleibhéil a sholáthar ar bhunachar sonraí a ligeann d’fhorbróir cód a scríobh sa teanga ríomhchlárúcháin dá rogha féin in ionad teangacha bunachair shonraí tiomnaithe, mar SQL.
Ciseal Marthanachta Sonraí
- Bunachair shonraí: mar a luadh muid níos luaithe, is gá de shaghas éigin marthanachta sonraí a bheith ag beagnach gach feidhmchlár. Is bunachair shonraí a láimhseálann an chuid seo, agus ag brath ar nádúr na sonraí, an loighic ghnó, agus go leor cúinsí eile, meastar go bhfuil rogha bunachar sonraí áirithe thar ceann eile ríthábhachtach maidir le héifeachtúlacht agus inscálaitheacht an iarratais.
Sampla: Post a Chur Leis
Anois go dtuigeann muid an smaoineamh ginearálta taobh thiar den ailtireacht, cuirimis é i bhfeidhm ar ár sampla simplí. Cuirfimid an ghné a bhaineann le post todo a chur lenár n-iarratas i bhfeidhm. Glacaimid leis go bhfuil aitheantas uathúil ag postáil ar bith a chuirfidh ar ár gcumas é a aithint níos déanaí inár mbunachar sonraí, teideal atá ina theaghrán, agus ord de chineál slánuimhir. Tar éis ár léaráid, cuirfimid tús leis an ródaire a chur i bhfeidhm. Cuir an cód seo a leanas leis an gcomhad index.js:
Is é seo ár gcomhad ródaire. Iompórtálann muid an modh sainráite agus an modh “addPost” ónár rialtóir (cuirfimid an ceann seo i bhfeidhm go luath), cruthaímid sampla de ródaire mear, agus nascaimid an modh addPost lenár ródaire - rud a chiallaíonn gur le haghaidh gach iarratas a bhfuil an fhréamhchosán agus an http modh “POST”, gairfear an modh “addPost” chun é a láimhseáil.
Sula gcuirimid ár modh sa rialtóir i bhfeidhm, déanaimid tagairt don ródaire nua inár bpríomhchomhad app.js, agus sonraímid a chonair mar “/ postálacha”: Cuirfear gach bealach leis na cosáin shonraithe ar aghaidh chuig an ródaire seo, ionas gur féidir é a láimhseáil de réir modhanna rialaithe éagsúla:
Iompórtálaimid an ródaire agus ainmnímid é mar “phoist”. ciallaíonn app.use (“/ postálacha”,..) go gcuirfear gach iarratas leis an bhfochonair “/posts”, is cuma cén modh http, chuig an ródaire sonraithe.
I measc na n-athruithe eile ar app.js tá an comhad cumraíochta bunachar sonraí a iompórtáil chun é a fhorghníomhú, agus an express.json() a úsáid mar mheánearraí chun gur féidir linn rochtain a fháil ar oibiacht coirp an iarratais.
Anois go bhfuil ár mbealaí socraithe, is féidir linn an modh “addPost” a chur leis sa chomhad controller.js:
Is feidhm lárearraí é “addPost” a ghlacann mar pharaiméadair leis an iarratas, na cuspóirí freagartha, agus an chéad fheidhm eile. Nuair a ghlaoitear an chéad fheidhm eile, bogfaidh an próiseas go dtí an chéad earraí lár eile sa slabhra, nó cuirfidh sé deireadh leis an iarratas. I gcód an mhodha, bainimid an teideal agus an t-ordú ón gcomhlacht iarratais, agus cuirimid iad sin mar pharaiméadair ar aghaidh chuig an bhfeidhm seirbhíse “createPost”. Glacann an fheidhm seo na tréithe postála, cruthaíonn sé postáil nua, agus cuireann sé ar ais é. Nuair a chruthaítear an post nua, cuirimid ar ais chuig an gcliant é in éineacht leis an gcód stádais 200, rud a chiallaíonn gur éirigh leis an iarratas. B’fhéidir go dtabharfaidh tú faoi deara go gcuirtear ár gcód taobh istigh de bhloc iarracht/ghabháil chun aon earráid gan choinne a aimsiú, agus é a chur ar aghaidh chuig an gcéad mheánearraí eile. Meastar gur dea-chleachtas é lárearraí láimhseála earráide a chur ag gabháil le gach ródaire a bhaintear as an earráid, agus a sheolann teachtaireacht earráide bríoch ar ais chuig an gcliant.
Níl fágtha anois ach an fheidhm “createPost” a chur i bhfeidhm in service.js:
Mar a luadh níos luaithe agus sinn ag míniú na sraitheanna éagsúla den ailtireacht, idirghníomhaíonn an ciseal seirbhíse leis an réiteach stórála sonraí trí úsáid a bhaint as ORM/ODM. Mar sin féin, inár sampla, ní bheidh orainn ORM ar leith a úsáid, ós rud é go dtagann Lowdb le tacaíocht ionsuite do Javascript. Tá na sonraí go léir faoina chomhréir le fáil sa doiciméadúchán.
Faigheann an modh “createPost” teideal agus ord mar pharaiméadair, agus úsáideann sé iad chun réad an phoist a chruthú. Maidir leis an aitheantas uathúil, úsáidimid leabharlann tiomnaithe ar a dtugtar “nanoid”, a ghineann seicheamh uathúil carachtar. Cuirimid an post nua isteach san eagar post sa bhunachar sonraí, agus scríobhaimid na hathruithe seo; cuireann an fheidhm an post nua ar ais ansin.
Anois go bhfuil “createPost” réidh, tá an ghné postála a chur leis críochnaithe anois agus faoi lánseol. Déanaimid é a thástáil trí úsáid a bhaint as Postman, uirlis mhóréilimh chun APIanna a thástáil:
Roghnaímid “POST” mar mhodh http don iarratas mar aon leis an gcosán url sonraithe “localhost: 3000/posts”. Cuirimid an teideal agus an t-ordú mar fhormáid json i rannóg an chomhlachta, agus seolaimid an t-iarratas. Mar a léirítear thuas, faigheann muid an stádas 200 OK mar aon leis an bpost nuachruthaithe.
Conclúid
Tá iniúchadh déanta ar go leor coincheapa agus smaointe sa tionscadal seo: Chlúdaigh muid conas ár dtimpeallacht tionscadail a shuiteáil agus a shocrú, d'fhoghlaimíomar conas LowDB a chumrú le haghaidh marthanacht sonraí áitiúla, rinneamar iniúchadh ar ailtireacht ghinearálta feidhmchláir backend NodeJS/Express, agus chonaic muid conas cuir i bhfeidhm é i sampla simplí. Ar deireadh, rinneamar tástáil ar ár bhfeidhmchlár ag baint úsáide as Postman.
Ba é an rún a bhí anseo ná leagan simplithe de gach a bhaineann le feidhmeanna inneall nua-aimseartha a thógáil a nochtadh. Mar a chonaic muid níos luaithe, is uirlis chumhachtach é NodeJs a chuireann ar ár gcumas APIanna simplí agus casta a thógáil. In éineacht lena éiceachóras saibhir creataí, mar shampla sainráite agus raidhse uirlisí agus leabharlanna le haghaidh beagnach aon chás úsáide, is réiteach legit é d'fhorbairt inneall nua-aimseartha - réiteach a mholaimid a fhoghlaim agus a mháistir.