Orodha ya maudhui:

Sehemu ya Wavuti ya Node.js Sehemu ya 2: Hatua 7
Sehemu ya Wavuti ya Node.js Sehemu ya 2: Hatua 7

Video: Sehemu ya Wavuti ya Node.js Sehemu ya 2: Hatua 7

Video: Sehemu ya Wavuti ya Node.js Sehemu ya 2: Hatua 7
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Novemba
Anonim
Sehemu ya Wavuti ya Node.js Sehemu ya 2
Sehemu ya Wavuti ya Node.js Sehemu ya 2

Karibu SEHEMU YA 2 !!

Hii ni sehemu ya 2 kwa mafunzo yangu ya maombi ya tovuti ya Node.js. Nilivunja mafunzo haya katika sehemu mbili kwani hutenganisha wale ambao wanahitaji tu utangulizi mfupi na wale ambao wanataka mafunzo kamili kwenye ukurasa wa wavuti.

Nitaenda kupitia uundaji wa wavuti yangu. Yako inaweza kuwa tofauti, kwa hivyo fuata yangu na ujifunze mbinu zilizotumiwa. Mara tu utakapochagua templeti tofauti ya HTML mtiririko utakuwa tofauti kidogo. Kumbuka hili.

Hatua ya 1: Muundo wa App

Muundo wa App
Muundo wa App

Kwa hivyo wavuti yangu inafuata jenereta ya kuelezea, hata hivyo nilitumia vipini badala ya jade. Ikiwa ungependa jade nenda kwa hilo! Jade ni HTML fupi ya mkono bila mabano na div zote. Ikiwa hauelewi kwamba unaweza kutaka kutembelea youtube na kutazama mafunzo kadhaa ya HTML.

Napendelea na nina raha zaidi na HTML na vipini vya mikono kwa hivyo ndivyo nilivyotumia. Kuunda mradi wa kuelezea na vipini vya mikono endesha amri ya kuelezea.

kueleza -hbs nameofmyapp

Kisha endelea kufuata hatua katika Sehemu ya 1 ya kusanikisha bidhaa zote za kati.

Express huunda muundo maalum wa programu na programu muhimu sana ya node.js hufuata fomu hii na tofauti kadhaa.

Katika picha iliyonaswa unaweza kuona folda na faili tofauti, hapa chini najaribu kuelezea haya yote.

bin

Hii ndio folda inayoendeshwa kwanza wakati node.js itaanza seva yako. Inatazama faili ya www na inafuata faili hii kwa utekelezaji. Faili ya www inaambia node.js kuanza seva kwenye bandari 3000 (hii inaweza kubadilika kuwa karibu kila kitu) na kufanya vitu vingine kama msikilizaji wa hafla na vile. Jambo kuu muhimu ni bandari ambayo programu yako imewekwa.

moduli za moduli

Katika folda hii ni kile kinachoitwa katikati-ware. Ware wa kati napenda kuelezea kama programu ya ziada ili kufanya mambo iwe rahisi kwako kuweka kificho. Kwa kweli maktaba nyingine zilizo na kazi zilizotengenezwa tayari utumie. Baadhi ya bidhaa za kati nilizotumia kwa mradi huu zilikuwa Nodemailer, Pasipoti, Nodemon, bycrypt, na zingine.

umma

Hapa ndipo picha zako zote, CSS, na javascript ya wavuti yako itaenda. Hizi hutumiwa moja kwa moja na kurasa za wavuti.

njia

Hizi ni njia za tovuti yako. Kama vile ukurasa wa kwanza, ukurasa wa kuingia, na zingine.

maoni

Kama unavyoona maoni ni faili za.hbs au bar.handlebars, ama itafanya kazi inachukua udanganyifu tu wa faili ya app.js. Hizi ni kurasa zako za html zinazoshughulikiwa ambazo zitaonyeshwa kwenye kivinjari. Mpangilio ni faili yako kuu ya mpangilio na wakati mwingine iko kwenye folda ndogo ya mpangilio. Faili kuu ya mpangilio inaita faili zako zingine za kushughulikia na kuzionyesha, hii itakuwa na maana zaidi tunapoingia kwenye nambari.

programu.js

Hii ni faili yako kuu ya programu, wakati mwingine hii inaitwa seva, inategemea tu usanidi. Faili hii ina usanidi wote wa seva na hata kazi zingine maalum. Pia itakuwa mshughulikiaji wa makosa.

kifurushi.json

Faili hii imeundwa kwa kuelezea na inaelezea npm vifaa vyote vya kati unavyotaka kutumia katika mradi wako. Mara tu utakapoanza npm install, vifaa vyote vya kati vilivyoitwa kwenye faili hii, vitawekwa kwenye folda ya node_modules.

Hatua ya 2: Mpangilio wa Kiolezo chako

Unaweza kuunda HTML yako yote kutoka mwanzo au unaweza kutumia templeti. Nimetumia templeti kwa wavuti hii. Tovuti zingine ambazo nimesaidia kukuza nimeandika kutoka mwanzo. Chaguo ni lako, hatua hii inaelezea mpangilio wa templeti.

Maombi yangu ya wavuti hutumia templeti ya bootstrap ambayo ni nzuri kwa kutengeneza CSS ya kushangaza. Kupata templeti tembelea tovuti hii. Kama ilivyoelezwa hapo awali katika hatua ya awali faili zote za css, js, na img ziko chini ya folda ya umma. Faili hizi hufanya tovuti ionekane bora kuliko maandishi wazi na jinsi picha hutumiwa kwenye wavuti.

Ili kufanya handlebars templating style kufanya kazi na template kurasa zimegawanyika vipande viwili. Kwanza ni kile kinachojulikana kama "mpangilio". Mpangilio ni mali ambayo ungetaka kuonyeshwa kwenye kila ukurasa wa wavuti ndani ya tovuti yako. Kwa upande wangu hii ni kichwa, ambacho kina bar ya urambazaji, na kijachini, ambacho kinashikilia urambazaji wa ziada na vipande vya kuonyesha.

Faili ya mpangilio na faili zingine za kushughulikia ziko kwenye folda ya maoni. Nitapita juu ya mpangilio rahisi zaidi kutoka kwa jenereta ya kuelezea uliyotumia hapo awali kuonyesha jinsi wazo linavyofanya kazi, basi unaweza kuona nambari yangu na ulinganishe.

Onyesha faili ya mpangilio wa bar

{{title}} {{{body}}}

Uchawi wa kweli wa kushughulikia upo katika mikono ya mikono {{title}} na {{{body}}}. Kwa hivyo hizi mbili hufanya tofauti {{title}} ni ubadilishaji ambao hupitishwa kutoka kwa faili ya index.js katika njia, mara baada ya kupitishwa kwa templeti inayoonyeshwa. Lebo ya {{{body}}} huchukua kile kinachoitwa katika kazi ya kutoa katika faili yako ya js. Katika kesi yetu index.js ina laini hii:

res.render ('index', {title: 'Express', hesabu: userCount});

Hii inaita faili ya 'index' ya kile kinachotumia injini yako kutumia, jade, vipini vya mikono, na kadhalika, kwa hivyo kwa index.handlebars zetu.

Express zinazozalishwa index.handlebars

{{title}}

Karibu kwenye {{title}}

Faili ya index.handlebars imepitishwa kama ubadilishaji wa lebo ya {{{body}}} na kuonyeshwa kwenye ukurasa wako wa wavuti.

Hii hukuruhusu kuwa na sehemu tuli ya wavuti yako na sehemu inayobadilika. Hii inafanya vichwa vya kichwa na vichwa vya miguu kuwa nzuri kwani sio lazima utoe tena ukurasa wote, wakati wa kupakia ukurasa mpya, habari zingine tu hubadilishwa.

Hatua ya 3: Fomu ya Mawasiliano

Fomu ya Mawasiliano
Fomu ya Mawasiliano
Fomu ya Mawasiliano
Fomu ya Mawasiliano
Fomu ya Mawasiliano
Fomu ya Mawasiliano

Niliingiza fomu ya mawasiliano kwenye ukurasa wangu wa wavuti ili mtu yeyote aweze kutuma barua pepe kwenye wavuti yangu, na maswali au maoni.

Fomu hii ya mawasiliano ilitumia npm katikati-ware ambayo inaitwa Node Mailer.

Kuanzisha Node Mailer

Ili kusanikisha node-mailer unahitaji tu kuendesha nambari hapa chini kwenye faili yako ya kiwango cha juu, kwa upande wetu, myapp.

Sudo npm kufunga nodemailer

Mara tu ikiwa imewekwa utahitaji kuweka vitu vichache kwenye faili yako ya programu.

Ya kwanza ni utegemezi tu, hii inaelezea node kwamba tunapanga kutumia hii katikati.

var nodemailer = zinahitaji ('nodemailer');

Pili ni msafirishaji wetu, msafirishaji hutumiwa kuungana na seva yako ya barua, kwa upande wangu gmail.

// Transporter alitumia kupata akaunti ya gmail

var transporter = nodemailer.createTransport ({huduma: 'gmail', auth: {aina: 'OAuth2', mtumiaji: '[email protected]', mtejaId: '139955258255-a3c6ilqu6rtocigde7cbrusicg7j00eh.apps.googleusercontent.comgoceusus: 'Q775xefdHA_BGu3ZnY9-6sP-', refreshToken: 1 / 0HfdzyzW3FmnDPqeYkv19_py6zWgMCOqI9DSZ9kQWfc ', accessToken:' ya29. GlvDBGA2Z_coEKjQOnXAnBLbTB0wQmS-sARqNGC3V2UATiywNb34IhFq4d7UQvhTobE6pi83-FB2-OvMWjC-mk-EKPMYmwxFe9AOZ7mY6kurYyQ7e1Mu8m8INxg7 '}})

ikiwa unatumia nodemailer na seva tofauti ya barua tafadhali angalia hapa kupata nyaraka na usaidizi.

Vitu vichache vitabadilika kutoka kwa mtu hadi mtu: mtumiaji, mtejaId, mtejaSecret. refreshToken, na accessToken.

UserId yako ni barua pepe ambayo unataka kutumia, nilitengeneza mpya inayoitwa sawa na tovuti yangu.

MtejaId, mtejaSecret, refreshToken, na accessToken anahitaji kupatikana kupitia akaunti yako ya google.

Ikiwa unahitaji msaada zaidi unaweza kufuata video hii hapa.

Mara tu sehemu hizo zote zitajazwa tutaongeza maelezo ya ujumbe wetu.

Ifuatayo tunahitaji kudhibitisha kuwa uwanja wote katika fomu yetu umeingizwa na ni majibu halali.

// Express Validatorapp.use (expressValidator ({errorFormatter: function (param, msg, value) {var namespace = param.split ('.'), Root = namespace.shift (), formParam = root; wakati (namespace.length {formParam + = '[' + namespace.shift () + ']';} kurudi {param: formParam, msg: msg, value: value};}})));

Sasa tunahitaji kupata habari kutoka kwa fomu yetu ya mawasiliano kwenye ukurasa wetu wa wavuti na kutuma ujumbe.

// Chapisha kutoka kwa kitufe cha kuwasilisha anwani, unahitaji kuunda ukurasa wa kwanza na ujumbe wa mafanikio kwa fomu zilizowasilishwaapp.post ('/ contact_Form', kazi (req, res) {// Pata habari kutoka kwa fomu ya mawasiliano, kutoka kwa homepage.hbs var name = req.body.name; var email = req.body.email; var simu = req.body.phone; var message = req.body.message; var mailOptions = {// huunda habari inayotumiwa wakati wa kutuma ujumbe kutoka: ' Moja kwa moja Barua pepe ', kwa:' [email protected] ', mada:' Fomu ya Mawasiliano ya Tovuti: '+ jina, maandishi:' Umepokea ujumbe mpya kutoka kwa fomu yako ya mawasiliano ya wavuti. / N / n '+' Hapa ni maelezo: / n / nJina: '+ jina +' / n / nBarua pepe: '+ barua pepe +' / nNamba ya simu: '+ simu +' / n / Ujumbe: / n '+ ujumbe} msafirishaji.tumaMail (barua Chaguo, function (err, res) {if (err) {console.log ('Error');} mwingine {console.log ('Email Sent');}}} res.render ('index'); // render ukurasa mpya wa nyumbani, angalia jinsi ya kufanya hivyo na ujumbe wa mafanikio, kama ukurasa wa kutoka nje})

Flash

Flash hutumiwa kuonyesha ujumbe baada ya vitendo kufanywa. Unaweza kuona hii unapowasilisha fomu, au usiingie uwanja kwa usahihi.

Sakinisha flash kama vifaa vingine vya katikati ya usiku.

Sudo npm kufunga kuungana-flash

var flash = zinahitaji ('connect-flash'); // alikuwa na utendaji wa flash kuonyesha kwenye ujumbe wa skrini

// Unganisha Flashapp.use (flash ());

Washa mwangaza ambao unasukuma na kusasisha ujumbe kwenye ukurasa wa wavuti. Hizi ni jumbe ambazo zinasema mambo kama mafanikio, au habari ziliingizwa vibaya.

// Global Vars

app.use (kazi (req, res, ijayo) {res.locals.success_msg = req.flash ('success_msg');.flash ('kosa'); res.locals.user = req.user || batili;

Wengine wanahitaji vigeuzi vinavyohusiana na flash.

Kuna ya kwenda fomu ya mawasiliano iliyofanywa.

Hatua ya 4: Ukurasa wa Ingia

Ingia Ukurasa
Ingia Ukurasa

Hii ilikuwa tu kitu ambacho nilitaka kuona ikiwa ningeweza kufanya na labda nitaitumia baadaye. Nilitaka kuelezea nambari kama ilivyo kwenye hazina yangu ya git.

Kwa hivyo sehemu hii hutumia npm zaidi ya kati katikati ya bidhaa. Sakinisha zifuatazo ukitumia amri zilizo hapa chini.

npm kufunga pasipoti && npm kufunga pasipoti-ya ndani && npm kufunga bcryptjs

&& hukuruhusu kuendesha amri nyingi na laini moja.

Ingia na Watumiaji

Utahitaji kuunda faili ya login.js na user.js chini ya folda zako za njia. Hii itatumika kuruhusu uundaji wa mtumiaji, ambao utahifadhiwa kwenye hifadhidata yetu, na kumruhusu mtumiaji kuingia kwa kuangalia hifadhidata.

mtumiaji

var Express = zinahitaji ('express'); var router = express. Router (); var passport = zinahitaji ('passport'); MkakatiStr Strategy = zinahitaji ('passport-local') Mkakati; var Mtumiaji = kuhitaji ('../ modeli / mtumiaji'); // Sajili router.get ('/ rejista', kazi (req, res) {res.render ('rejista');}); // Sajili router ya mtumiaji.post ('/ rejista', kazi (req, res) {var name = req.body.name; var email = req.body.email; var username = req.body.username; var password = req.body.password; var password2 = req.body.assword2; req.checkBody ('barua pepe', 'Barua pepe sio halali'). isEmail (); req.checkBody ('jina la mtumiaji', 'Jina la mtumiaji linahitajika'). notE dalili (); req.checkBody ('). nenosiri ',' Nenosiri linahitajika ') notEmpty (); req.checkBody (' password2 ',' Nywila hazilingani ') sawa (req.body.password); var makosa = req.validationErrors (); ikiwa (makosa) newUser, function (err, user) {if (err) throw err; console.log (user);}); req.flash ('success_msg', 'Umesajiliwa na sasa unaweza kuingia'); /Ingia'); } });

Kuvunja kipande hiki chini

Kwanza tunajumuisha bidhaa zote za kati zinahitajika, kisha tunajumuisha faili yetu ya mfano ambayo imeelezewa hapo chini. Tunapita kutoka kwenye lebo ya rejista na kuonyesha maandishi yetu ya rejareja za rejista. Kisha kazi muhimu inakuja. Hizi zinaturuhusu kusajili mtumiaji mpya katika hifadhidata yetu. Kazi inakagua kuhakikisha kuwa sehemu zote ni halali na zinajumuishwa katika fomu, ikiwa sivyo itawashawishi. Ifuatayo huangalia makosa, na ikiwa hakuna makosa yanayotokea huunda mtumiaji mpya na habari iliyopewa. Halafu inarudisha njia kwenye ukurasa wa kuingia, ikiruhusu uingie.

ingia.js

var express = zinahitaji ('express');

var router = kuelezea. Njia (); var pasipoti = zinahitaji ('pasipoti'); MkakatiStr Strategy = zinahitaji ('passport-local') Mkakati; var Mtumiaji = kuhitaji ('../ modeli / mtumiaji'); / * Pata orodha ya watumiaji. * / // router ya ukurasa wa kwanza.get ('/', function (req, res) {res.render ('login');}); hati ya kusafiria ujumbe: 'Mtumiaji Asiyejulikana'});} Mtumiaji.comparePassword (nywila, neno la mtumiaji, neno la kufanya, kazi (kosa, isMatch) {if (makosa) tupa kosa; ikiwa (isMatch) {kurudi umefanya (null, user); kurudi kumalizika (batili, uwongo, {ujumbe: 'Nenosiri batili'});}});});}))); passport.serializeUser (kazi (mtumiaji, amefanya) {done (null, user.id);}); hati ya kusafiria. router.post ('/ login', passport.authibiticate ('local', {successRedirect: '/', failureRedirect: '/ login', failureFlash: true}), kazi (req, res) {res.redirect ('/ dashibodi ');}); router.get ('/ logout', kazi (req, res) {req.logout (); req.flash ('success_msg', 'Umetoka nje'); rejea tena ('/ homepage');});

moduli.export = router;

Kwanza tunajumuisha bidhaa zote za kati zinahitajika, kisha tunajumuisha faili yetu ya mfano ambayo imeelezewa hapo chini. Tunapita kutoka kwa lebo ya kuingia na kuonyesha maandishi yetu ya mikono ya kuingia. Tunatumia kazi zingine za pasipoti kuchukua jina la mtumiaji na nywila na kuziangalia kulingana na hifadhidata yetu. Tutatumia nywila iliyosimbwa pia ambayo inaweza kufanya kuingia polepole kidogo kwenye pi ya raspberry. Ninaelezea hii zaidi baadaye. Baada ya kuidhinisha jina la mtumiaji na nywila, umeelekezwa kwa ukurasa wa kwanza ambao utaonyesha dashibodi wakati tunapoweka hii kwenye faili yetu ya faharisi. Pia tunaongeza hapa uwezo wa kutoka.

Kama nilivyosema hapo awali tutahitaji pia kuunda mfano wa kukagua hifadhidata.

Hii imefanywa kwa kuunda folda chini ya folda yako kuu ya programu inayoitwa mifano. Katika folda hii faili ya user.js pia inahitajika.

mfano / mtumiaji.js

var mongoose = zinahitaji ('mongoose');

var bcrypt = zinahitaji ('bcryptjs'); // Mtumiaji Schema var UserSchema = mongoose. Schema ({jina la mtumiaji: {aina: Kamba, faharisi: kweli}, nywila: {aina: Kamba}, barua pepe: {aina: Kamba}, jina: {aina: Kamba}}); var User = module.exports = mongoose.model ('Mtumiaji', UserSchema);

module.exports.createUser = kazi (newUser, callback) {

bcrypt.genSalt (10, function (err, salt) {bcrypt.hash (newUser.password, chumvi, kazi (err, hash) {newUser.password = hash; newUser.save (callback);});};});); } moduli.exports.getUserByUsername = kazi (jina la mtumiaji, kupiga tena) {var query = {jina la mtumiaji: jina la mtumiaji}; Mtumiaji.findOne (swala, kupiga tena simu); } moduli.exports.getUserById = kazi (id, callback) {User.findById (id, callback); } moduli.exports.comparePassword = function (candidatePassword, hash, callback) {bcrypt.compare (candidatePassword, hash, function (err, isMatch) {if (err) tupa makosa; callback (null, isMatch);}); }

Mfano huu unaelezea jinsi vigezo vyetu vya mtumiaji vitaonekana na vile vile jinsi tutakavyofikia. Nilitaja hapo awali kuwa tutasimba nywila zetu. hii ni ili hakuna nenosiri lililohifadhiwa kwenye hifadhidata ikiwa kuna ukiukaji. Nywila ni haraka kutumia bcrypt kati-ware.

Hatua ya 5: Kaunta ya Trafiki

Kukabiliana na Trafiki
Kukabiliana na Trafiki

Nilitaka kuona ni watumiaji wangapi wa kipekee waliotembelea ukurasa wangu wa wavuti na kuhesabu idadi ya "hits". Kuna njia nyingi za kufanya hivi, nitaelezea jinsi nilivyoenda juu yake.

Hii hutumia mkusanyiko wa mongodb kufuatilia ni watumiaji wangapi wametembelea ukurasa wangu na ni mara ngapi kila mgeni wa kipekee alitembelea.

Kwa kuwa tayari tumezungumza juu ya kuanzisha mongoDB sitapitia tena.

Unaweza kuhitaji kuongeza makusanyo mawili kwenye hifadhidata yako ili ujumuishe. Ili kufanya hivyo unaweza kusanikisha RoboMongo ikiwa unatumia UI, hata hivyo ikiwa unatumia pi ya rasipberry isiyo na kichwa kama mimi utafurahisha amri zifuatazo.

Ganda la Mongo

Ili kuhariri db, pata habari, au unda mkusanyiko utahitaji ganda la mongo kwenye kitengo kisicho na kichwa.

Endesha

mongo

Hii itafungua ganda.

Ongeza mkusanyiko

Kwa upande wangu, hifadhidata inaitwa loginapp, unaweza kuipatia jina lolote unalotaka.

tumia nameofyourdb

Tunahitaji mkusanyiko wa kushikilia anwani yetu ya ip ya watumiaji wanaotembelea wavuti yetu.

db.creatCollection ("ip")

Ifuatayo tunaunda mkusanyiko kuhesabu vibao vya kipekee kwenye wavuti yetu. Hii imeanzishwa na kitambulisho na hesabu kuanzia saa 0.

db.createCollection ("hesabu", {id: "hit counter", hesabu: 0})

Fuatilia Anwani za IP

Ili kufanya hivyo tutavuta watumiaji Ip wanapotembelea ukurasa wetu wa nyumbani, kuongeza hesabu zetu, na kuzihifadhi ili kuzilinganisha baadaye.

Tunahitaji kuunda aina kadhaa za kuhifadhi skimu zetu za mongoose, na kuongeza nambari kadhaa kwenye faili yetu ya homepage.js.

Tunaunda count.js na ip.js na kuzihifadhi kwenye folda zetu za mifano.

Faili ya ip.js ni schema tu kwa anwani yetu ya ip

var mongoose = zinahitaji ('mongoose'); // kifurushi cha kifurushi cha mongo

// Hesabu Schema var IpSchema = mongoose. Schema ({ip: {type: String,}, count: {type: Number,}}); var Ip = moduli.export = mongoose.model ('Ip', IpSchema);

count.js itaitwa na ukurasa wetu wa kwanza kuanzisha ufuatiliaji wa hit. Hii imefanywa kwa chini.

//Homepagerouter.get('/ ', function (req, res) {publicIp.v4 (). Halafu (ip => {Public_ip = ip; console.log ("ipv4:" + Public_ip); // =>' 46.5.21.123 '}); publicIp.v6 (). Kisha (ip => {console.log ("ipv6" + ip); Public_ip = ip; // =>' fe80:: 200: f8ff: fe21: 67cf ' });

Count.getCount (ukusanyaji, ipc, Public_ip, kazi (hesabu) {

}); count = db.collection ('count'). findOne ({id: "hit counter"}, kazi (err, count) {userCount = count.count; res.render ('homepage', {count: userCount}); }); });

Hii hufanyika kila wakati mtu anakwenda kwenye ukurasa wetu wa kwanza, katika kesi hii theinternet.onthewifi.com/homepage.

Inakagua IP ya mtumiaji, ip4 au ip6, na kisha ihifadhi thamani hiyo mahali inapotuma kwa count.get.collection ambayo ni kazi iliyohifadhiwa katika faili yetu ya count.js.

Baada ya kuangalia upekee wa mtumiaji basi inarudi na kuchapisha thamani ya hesabu kwenye ukurasa wa kwanza kama utaftaji wa kushughulikia.

Faili ya count.js ni kama ifuatavyo.

//count.jsvar mongo = zinahitaji ('mongodb'); // inasaidia hifadhidata var mongoose = zinahitaji ('mongoose'); // mshughulikiaji wa kifurushi cha mongo mongoose.connect ('mongodb: // localhost / loginapp'); var db = uhusiano wa mongoose. var Ip = zinahitaji ('../ models / ip'); // Hesabu Schema var CountSchema = mongoose. Schema ({id: {type: String,}, count: {type: Number,}}); var Count = moduli.export = mongoose.model ('Hesabu', Hesabu); module.exports.getCount = function (count, ipc, Public_ip, callback) {// count is test, callback isfunction ipc.findOne ({ip: Public_ip}, function (err, iptest) {if (! iptest) // ongeza ip mpya ikiwa haipo kwenye hifadhidata, na sasisha counter {var new_ip = new Ip ({ip: Public_ip, count: 1}); db.collection ('ip'). save (new_ip); // add new ip to hesabu ya hifadhidata. {ip: Umma_ip}, {$ inc: {hesabu: 1}})}}); }

Hii inaunda schema ya hesabu, na kazi yetu ya.getCount. Kazi ya.getCount huangalia DB kwa watumiaji ip na ikiwa itaipata, kazi hiyo huongeza hesabu ya mtumiaji huyo, sio counter counter. Walakini ikiwa watumiaji ip haipatikani itaunda kitu kipya cha mkusanyiko na watumiaji ip na kuongeza kaunta ya hit kwa 1.

Hii inarudishwa na kuonyeshwa kwenye ukurasa wa wavuti.

Huko unayo counter counter ya ufuatiliaji wa ip.

Hatua ya 6: Blogi

Blogi
Blogi

Hivi sasa ninajaribu kukuza blogi iliyoangazia masilahi yangu kuhusu programu, nyumba nzuri, na Polaroids. Kwa hivyo niliunda sehemu ya blogi. Blogi hutumia kurasa tuli za html na mfumo wa ushughulikiaji. Baada ya kuangalia teknolojia bora za kufanya kublogi iwe rahisi tangu wakati huo nimeunda upya wavuti yangu kwa kutumia hugo. Hugo ni jenereta tuli ya html. Ninazungumza zaidi juu ya hii katika mafunzo yaliyotajwa hapo chini.

Hatua ya 7: Imemalizika

Huko unaenda mafunzo ya kina kwenye wavuti yangu ya node.js iliyohifadhiwa ndani ya eneo kwenye pi yangu ya rasipberry. Ikiwa una maswali au maoni tafadhali waache hapa chini.

Natumaini hii inasaidia wengine huko nje.

Kwa njia tofauti ya wavuti hii ukitumia hugo, jenereta ya tuli ya ukurasa wa wavuti angalia mafunzo yangu mengine (yanakuja hivi karibuni).

Ilipendekeza: