Isi kandungan:
- Langkah 1: Struktur Aplikasi
- Langkah 2: Susun templat Anda
- {{tajuk}}
- Langkah 3: Borang Hubungi
- Langkah 4: Halaman Log Masuk
- Langkah 5: Kaunter Lalu Lintas
- Langkah 6: Blog
- Langkah 7: Selesai
Video: Halaman Web Node.js Bahagian 2: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Selamat datang ke BAHAGIAN 2 !!
Ini adalah bahagian 2 dalam tutorial aplikasi laman web Node.js saya. Saya membahagikan tutorial ini kepada dua bahagian kerana ia memisahkan mereka yang hanya memerlukan pengenalan ringkas dan mereka yang mahukan tutorial lengkap di laman web.
Saya akan melalui pembuatan laman web saya. Anda mungkin berbeza, jadi ikuti saya dan pelajari teknik yang digunakan. Sebaik sahaja anda memilih templat HTML yang berbeza, alirannya akan sedikit berbeza. Ingatlah perkara ini.
Langkah 1: Struktur Aplikasi
Oleh itu, laman web saya mengikuti penjana ekspres, namun saya menggunakan hendal dan bukannya jade. Sekiranya anda suka jade, cari! Jade adalah HTML tangan pendek tanpa semua tanda kurung dan div. Sekiranya anda tidak faham bahawa anda mungkin ingin melawat youtube dan menonton beberapa tutorial HTML.
Saya lebih suka dan lebih selesa dengan HTML dan hendal jadi itulah yang saya gunakan. Untuk membuat projek ekspres dengan hendal jalankan perintah ekspres.
ungkapkan --hbs nameofmyapp
Kemudian terus ikuti langkah di Bahagian 1 untuk memasang semua alat tengah.
Express membuat struktur aplikasi yang sangat spesifik dan sangat berguna yang paling banyak aplikasi node.js mengikuti borang ini dengan beberapa variasi.
Dalam foto yang diambil anda dapat melihat folder dan fail yang berlainan, di bawah ini saya cuba menerangkan semua ini.
tong sampah
Ini adalah folder yang dijalankan terlebih dahulu semasa node.js memulakan pelayan anda. Ia melihat ke fail www dan mengikuti fail ini untuk pelaksanaan. Fail www memberitahu node.js untuk memulakan pelayan di port 3000 (ini boleh berubah menjadi apa sahaja) dan melakukan beberapa perkara lain seperti pendengar acara dan sebagainya. Perkara penting utama ialah port di mana aplikasi anda disediakan.
simpul_modul
Di folder ini adalah apa yang disebut middle-ware. Alat tengah saya ingin menerangkan sebagai perisian tambahan untuk memudahkan anda membuat kod. Theya pada dasarnya adalah perpustakaan lain dengan fungsi yang telah dibuat untuk anda gunakan. Beberapa alat tambahan yang saya gunakan untuk projek ini ialah Nodemailer, Passport, Nodemon, bycrypt, dan lain-lain.
awam
Di sinilah semua gambar, CSS, dan javascript untuk laman web anda akan pergi. Ini digunakan secara langsung oleh laman web.
laluan
Ini adalah menentukan laluan untuk laman web anda. Seperti laman utama, halaman log masuk, dan lain-lain.
pandangan
Seperti yang anda lihat, paparan adalah fail.hbs atau.handlebars, baik yang berfungsi akan memerlukan manipulasi fail app.js. Ini adalah halaman html hendal anda yang akan dipaparkan di penyemak imbas. Layout adalah fail susun atur utama anda dan kadang-kadang terdapat dalam sub folder susun aturnya sendiri. Fail susun atur utama memanggil fail hendal anda yang lain dan memaparkannya, ini akan lebih masuk akal apabila kami menyelidiki kod tersebut.
app.js
Ini adalah fail aplikasi utama anda, kadang-kadang ini dipanggil pelayan, hanya bergantung pada penyediaannya. Fail ini mempunyai semua konfigurasi untuk pelayan dan bahkan beberapa fungsi khas. Ia juga akan menjadi pengendali ralat.
pakej.json
Fail ini dibuat oleh express dan memberitahu npm semua middleware yang ingin anda gunakan dalam projek anda. Sebaik sahaja anda menjalankan pemasangan npm, semua perisian tengah yang dipanggil dalam fail ini, akan dipasang di folder node_modules.
Langkah 2: Susun templat Anda
Anda boleh membuat semua HTML anda dari awal atau menggunakan templat. Saya telah menggunakan templat untuk laman web ini. Laman web lain yang telah saya bantu dibangunkan telah saya kodkan dari awal. Pilihannya adalah milik anda, langkah ini menerangkan susun atur templat.
Aplikasi web saya menggunakan templat bootstrap yang hebat dalam membuat CSS yang luar biasa. Untuk mencari templat, lawati laman web ini. Seperti yang dinyatakan sebelumnya pada langkah sebelumnya, semua fail css, js, dan img yang diperlukan berada di bawah folder awam. Fail ini menjadikan laman web kelihatan lebih baik daripada teks biasa dan bagaimana gambar digunakan di laman web ini.
Untuk menjadikan gaya templat setang berfungsi dengan templat Halaman dibahagi kepada dua bahagian. Yang pertama adalah apa yang disebut sebagai "susun atur". Tata letak adalah sifat yang ingin anda tampilkan di setiap laman web di dalam laman web anda. Dalam kes saya, ini adalah header, yang mempunyai bar navigasi, dan footer, yang memegang bahagian navigasi dan paparan tambahan.
Fail susun atur dan fail hendal lain ada di folder paparan. Saya akan melihat susun atur yang lebih mudah dari penjana ekspres yang anda gunakan sebelumnya untuk memaparkan bagaimana konsep itu berfungsi, maka anda dapat melihat kod saya dan membandingkannya.
Fail susun atur.handlebars yang dihasilkan
{{tajuk}} {{{badan}}}
Keajaiban setang yang sebenarnya ada pada hendal {{title}} dan {{{body}}}. Jadi kedua-dua tindakan ini berbeza {{title}} adalah pemboleh ubah yang dilalui dari file index.js dalam laluan, setelah diteruskan ke templat itu dipaparkan. Tag {{{body}}} menggunakan apa yang dipanggil dalam fungsi rendering dalam fail js laluan anda. Dalam kes kami index.js mempunyai baris berikut:
res.render ('index', {title: 'Express', hitung: userCount});
Ini memanggil fail 'index' dari mesin yang pernah anda gunakan, jade, hendal, dan lain-lain, jadi dalam case index.handlebars kami.
Express.handlebars dihasilkan
{{tajuk}}
Selamat datang ke {{title}}
File index.handlebars diteruskan seperti pemboleh ubah ke tag {{{body}}} dan dipaparkan di laman web anda.
Ini membolehkan anda mempunyai bahagian statik dari laman web anda dan bahagian yang berubah-ubah. Ini menjadikan header dan footer bagus kerana anda tidak perlu membuat ulang keseluruhan halaman, ketika memuat halaman baru, hanya beberapa informasi yang diubah.
Langkah 3: Borang Hubungi
Saya memasukkan borang kenalan ke laman web saya supaya sesiapa sahaja boleh menghantar e-mel laman web saya, dengan pertanyaan atau komen.
Bentuk hubungan ini menggunakan alat tengah npm yang dipanggil Node Mailer.
Menyiapkan Node Mailer
Untuk memasang node-mailer, anda hanya perlu menjalankan kod di bawah ini dalam fail tingkat atas anda, dalam kes kami, myapp.
sudo npm pasang nodemailer
Setelah dipasang, anda perlu menyediakan beberapa perkara dalam fail app.js anda.
Yang pertama hanyalah kebergantungan, ini memberitahu bahawa kita merancang untuk menggunakan perisian tengah ini.
var nodemailer = memerlukan ('nodemailer');
Kedua adalah pengangkut kami, pengangkut digunakan untuk menyambung ke pelayan mel anda, dalam kes saya gmail.
// Pengangkut digunakan untuk mendapatkan akaun gmail
var transporter = nodemailer.createTransport ({service: 'gmail', auth: {type: 'OAuth2', user: '[email protected]', clientId: '139955258255-a3c6ilqu6rtocigde7cbrusicg7j00eh.apps.googleusercontent.com, clientSercentent.com: 'Q775xefdHA_BGu3ZnY9-6sP-', refreshToken: '1 / 0HfdzyzW3FmnDPqeYkv19_py6zWgMCOqI9DSZ9kQWfc', accessToken: 'ya29. GlvDBGA2Z_coEKjQOnXAnBLbTB0wQmS-sARqNGC3V2UATiywNb34IhFq4d7UQvhTobE6pi83-fb2-OvMWjC-mk-EKPMYmwxFe9AOZ7mY6kurYyQ7e1Mu8m8INxg7'}})
jika menggunakan nodemailer dengan pelayan mel yang berbeza sila cari di sini untuk dokumentasi dan bantuan.
Beberapa perkara akan berubah dari orang ke orang: pengguna, clientId, clientSecret. refreshToken, dan accessToken.
UserId anda adalah e-mel yang ingin anda gunakan, saya membuat yang baru dengan nama yang sama dengan laman web saya.
The clientId, clientSecret, refreshToken, dan accessToken perlu dijumpai melalui akaun google anda.
Sekiranya anda memerlukan lebih banyak pertolongan, anda boleh mengikuti video ini di sini.
Setelah semua bidang tersebut diisi, kami akan menambah butiran mesej kami.
Seterusnya kita perlu mengesahkan bahawa semua bidang dalam borang kita telah dimasukkan dan merupakan respons yang sah.
// Express Validatorapp.use (expressValidator ({errorFormatter: function (param, msg, value) {var namespace = param.split ('.'), Root = namespace.shift (), formParam = root; while (namespace.length) {formParam + = '[' + namespace.shift () + ']';} return {param: formParam, msg: msg, value: value};}})));
Kami sekarang perlu mendapatkan maklumat dari borang hubungan kami di laman web kami dan menghantar mesej.
// Pos dari butang hantar kenalan, perlu membuat laman utama dengan mesej kejayaan untuk borang yang dihantarapp.post ('/ contact_Form', function (req, res) {// Dapatkan maklumat dari borang kenalan, dari homepage.hbs var name = req.body.name; var email = req.body.email; var phone = req.body.phone; var message = req.body.message; var mailOptions = {// mencipta maklumat yang digunakan semasa menghantar mesej dari: ' E-mel automatik ', ke:' [email protected] ', subjek:' Borang Hubungan Laman Web: '+ nama, teks:' Anda telah menerima mesej baru dari borang hubungan laman web anda. / N / n '+' Di sini adalah perinciannya: / n / nNama: '+ name +' / n / nEmail: '+ email +' / n / nPhone: '+ phone +' / n / nMesej: / n '+ message} transporter.sendMail (mailOptions, function (err, res) {if (err) {console.log ('Error');} other {console.log ('Email Sent');}}) res.render ('index'); // render laman utama baru, lihat bagaimana melakukannya dengan mesej kejayaan, seperti halaman log keluar})
Kilat
Flash digunakan untuk menunjukkan mesej setelah tindakan dilakukan. Anda dapat melihatnya semasa anda menghantar borang, atau tidak memasukkan medan dengan betul.
Pasang flash seperti perisian tengah npm yang lain.
sudo npm pasang sambung-kilat
var flash = memerlukan ('connect-flash'); // mempunyai fungsi kilat untuk ditunjukkan pada mesej skrin
// Sambungkan Flashapp.use (flash ());
Aktifkan flash yang mendorong dan mengemas kini mesej di halaman web. Ini adalah mesej yang mengatakan perkara seperti kejayaan, atau maklumat dimasukkan dengan tidak betul.
// Vars Global
app.use (fungsi (req, res, next) {res.locals.success_msg = req.flash ('success_msg'); res.locals.error_msg = req.flash ('error_msg'); res.locals.error = req.flash ('error'); res.locals.user = req.user || null; seterusnya ();});
Beberapa memerlukan pemboleh ubah yang berkaitan dengan denyar.
Ada ya borang hubungan yang dibuat.
Langkah 4: Halaman Log Masuk
Ini hanyalah sesuatu yang saya ingin lihat sekiranya saya dapat melakukannya dan mungkin saya akan menggunakannya pada masa akan datang. Saya hanya ingin menerangkan kodnya seperti di git repositori saya.
Oleh itu, bahagian ini menggunakan beberapa alat tengah npm. Pasang yang berikut menggunakan arahan di bawah.
npm pasangkan pasport & npm pasangkan pasport-tempatan & npm pasangkan bcryptjs
& Membolehkan anda menjalankan beberapa arahan dengan satu baris.
Log masuk dan Pengguna
Anda perlu membuat fail login.js dan user.js di bawah folder laluan anda. Ini akan digunakan untuk memungkinkan penciptaan pengguna, yang akan disimpan di pangkalan data kami, dan memungkinkan pengguna untuk masuk dengan memeriksa pangkalan data.
pengguna.js
var express = memerlukan ('express'); var router = express. Router (); var passport = memerlukan ('pasport'); var LocalStrategy = memerlukan ('passport-local'). Strategi; var Pengguna = memerlukan ('../ model / pengguna'); // Daftar router.get ('/ register', function (req, res) {res.render ('register');}); // Daftar Pengguna router.post ('/ register', function (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.password2; // Pengesahan req.checkBody ('name', 'Name is required'). notEmpty (); req.checkBody ('email', 'Email diperlukan')).notEmpty (); req.checkBody ('email', 'Email tidak sah'). isEmail (); req.checkBody ('nama pengguna', 'Nama pengguna diperlukan'). notEmpty (); req.checkBody (' kata laluan ',' Kata Laluan diperlukan '). notEmpty (); req.checkBody (' password2 ',' Kata laluan tidak sepadan '). sama (req.body.password); var error = req.validationErrors (); if (ralat) {res.render ('register', {error: error});} lain-lain {var newUser = pengguna baru ({nama: nama, e-mel: e-mel, nama pengguna: nama pengguna, kata laluan: kata laluan}); User.createUser (newUser, function (err, user) {if (err) throw err; console.log (user);}); req.flash ('success_msg', 'Anda telah didaftarkan dan kini boleh log masuk'); res.redirect (' /log masuk'); } });
Memecahkan bahagian ini demi satu
Mula-mula kami memasukkan semua alat tengah yang diperlukan, kemudian kami memasukkan fail model kami yang dijelaskan di bawah. Kami membuat laluan dari tag daftar dan memaparkan teks hendal daftar kami. Kemudian fungsi penting datang. Ini membolehkan kami mendaftarkan pengguna baru dalam pangkalan data kami. Fungsi memeriksa untuk memastikan semua bidang sah dan disertakan dalam borang, jika tidak, ia akan meminta mereka. Selanjutnya ia memeriksa kesilapan, dan jika tidak ada kesalahan, ia akan membuat pengguna baru dengan maklumat yang diberikan. Ia kemudian kembali ke halaman masuk, yang membolehkan anda masuk.
log masuk.js
var express = memerlukan ('express');
var router = express. Router (); var passport = memerlukan ('passport'); var LocalStrategy = memerlukan ('passport-local'). Strategi; var Pengguna = memerlukan ('../ model / pengguna'); / * DAPATKAN senarai pengguna. * / // Homepage router.get ('/', function (req, res) {res.render ('login');}); passport.use (LocalStrategy baru (fungsi (nama pengguna, kata laluan, selesai) {User.getUserByUsername (nama pengguna, fungsi (err, pengguna) {if (err) throw err; if (! user) {return done (null, false, { message: 'Pengguna Tidak Dikenal'});} User.comparePassword (kata laluan, user.password, function (err, isMatch) {if (err) throw err; if (isMatch) {return selesai (null, user);} lain { pengembalian selesai (null, false, {message: 'Kata laluan tidak sah'});}});});})); passport.serializeUser (fungsi (pengguna, selesai) {selesai (null, user.id);}); passport.deserializeUser (fungsi (id, selesai) {User.getUserById (id, function (err, user) {done (err, user);});}); router.post ('/ login', passport.authenticate ('local', {successRedirect: '/', FailRedirect: '/ login', failFlash: true}), fungsi (req, res) {res.redirect ('/ papan pemuka ');}); router.get ('/ logout', function (req, res) {req.logout (); req.flash ('success_msg', 'You log out'); res.redirect ('/ homepage');});
module.exports = penghala;
Mula-mula kami memasukkan semua alat tengah yang diperlukan, kemudian kami memasukkan fail model kami yang dijelaskan di bawah. Kami membuat laluan dari tag masuk dan memaparkan teks hendal masuk kami. Kami kemudian menggunakan beberapa fungsi pasport untuk mengambil nama pengguna dan kata laluan yang dimasukkan dan menyemaknya pada pangkalan data kami. Kami juga akan menggunakan kata laluan yang dienkripsi yang boleh membuat log masuk sedikit lambat pada raspberry pi. Saya menerangkan perkara ini seterusnya. Setelah mengesahkan nama pengguna dan kata laluan, anda akan diarahkan ke halaman utama yang akan menunjukkan papan pemuka ketika kami menyiapkannya dalam fail indeks kami. Kami juga menambah kemampuan log keluar.
Seperti yang saya nyatakan sebelumnya, kami juga perlu membuat model untuk memeriksa pangkalan data.
Ini dilakukan dengan membuat folder di bawah folder aplikasi utama anda yang disebut model. Dalam folder ini, fail user.js juga diperlukan.
model / pengguna.js
var mongoose = memerlukan ('mongoose');
var bcrypt = memerlukan ('bcryptjs'); // Skema Pengguna var UserSchema = mongoose. Schema ({nama pengguna: {type: String, index: true}, kata laluan: {type: String}, e-mel: {type: String}, nama: {type: String}}); var Pengguna = module.exports = mongoose.model ('User', UserSchema);
module.exports.createUser = fungsi (newUser, callback) {
bcrypt.genSalt (10, function (err, salt) {bcrypt.hash (newUser.password, salt, function (err, hash) {newUser.password = hash; newUser.save (callback);});}); } module.exports.getUserByUsername = function (nama pengguna, panggilan balik) {var query = {username: username}; User.findOne (pertanyaan, panggilan balik); } module.exports.getUserById = fungsi (id, callback) {User.findById (id, callback); } module.exports.comparePassword = function (اميدوارPassword, hash, callback) {bcrypt.compare (اميدوارPassword, hash, function (err, isMatch) {if (err) throw err; callback (null, isMatch);}); }
Model ini menggariskan bagaimana parameter pengguna kami dan bagaimana kami akan mengaksesnya. Saya sebutkan sebelum ini bahawa kami akan menyulitkan kata laluan kami. ini supaya tidak ada kata laluan yang disimpan dalam pangkalan data sekiranya berlaku pelanggaran. Kata laluan dicincang menggunakan bcrypt perisian tengah.
Langkah 5: Kaunter Lalu Lintas
Saya ingin melihat berapa banyak pengguna unik yang mengunjungi laman web saya dan mengira jumlah "klik". Terdapat banyak cara untuk melakukan ini, saya akan menerangkan bagaimana saya melakukannya.
Ini menggunakan koleksi mongodb untuk mengesan berapa banyak pengguna telah mengunjungi halaman saya dan berapa kali setiap pelawat unik dikunjungi.
Oleh kerana kita sudah membincangkan tentang menyediakan mongoDB, saya tidak akan mengatasinya lagi.
Anda mungkin perlu menambahkan dua koleksi ke pangkalan data anda untuk menyusunnya. Untuk melakukan ini, anda boleh memasang RoboMongo jika menggunakan UI, namun jika anda menggunakan pi raspberry tanpa kepala seperti saya, anda akan menyukai perintah berikut.
Cengkerang Mongo
Untuk mengedit db, mendapatkan maklumat, atau membuat koleksi, anda memerlukan shell mongo pada unit tanpa kepala.
Lari
mongo
Ini akan membuka cengkerang.
Tambahkan koleksi
Dalam kes saya, pangkalan data dipanggil loginapp, anda boleh menamakannya apa sahaja yang anda mahukan.
gunakan nameofyourdb
Kami memerlukan koleksi untuk menyimpan semua alamat ip pengguna yang melayari laman web kami.
db.creatCollection ("ip")
Seterusnya kami membuat koleksi untuk mengira hits unik di laman web kami. Ini dimulakan dengan id dan kiraan bermula pada 0.
db.createCollection ("count", {id: "hit counter", count: 0})
Jejak Alamat IP
Untuk melakukan ini, kami akan menarik pengguna Ip ketika mereka mengunjungi laman utama kami, menambah jumlah kami, dan menyimpannya untuk membandingkannya kemudian.
Kami perlu membuat beberapa model untuk menyimpan skema mongoose kami, dan menambahkan beberapa kod ke fail homepage.js kami.
Kami membuat count.js dan ip.js dan menyimpannya dalam folder model kami.
Fail ip.js hanyalah skema untuk alamat ip kami
var mongoose = memerlukan ('mongoose'); // pengendali pakej untuk mongo
// Count Schema var IpSchema = mongoose. Schema ({ip: {type: String,}, hitung: {type: Number,}}); var Ip = module.exports = mongoose.model ('Ip', IpSchema);
count.js akan dipanggil oleh laman utama kami untuk memulakan penjejakan hit. Ini dilakukan seperti di bawah.
//Homepagerouter.get('/ ', function (req, res) {publicIp.v4 (). Kemudian (ip => {Public_ip = ip; console.log ("ipv4:" + Public_ip); // =>' 46.5.21.123 '}); publicIp.v6 (). Kemudian (ip => {console.log ("ipv6" + ip); Public_ip = ip; // =>' fe80:: 200: f8ff: fe21: 67cf ' });
Count.getCount (koleksi, ipc, Public_ip, fungsi (kiraan) {
}); hitung = db.collection ('count'). findOne ({id: "hit counter"}, function (err, count) {userCount = count.count; res.render ('homepage', {count: userCount}); }); });
Ini berlaku setiap kali seseorang pergi ke laman utama kami, dalam kes ini theinternet.onthewifi.com/homepage.
Ia memeriksa IP pengguna, ip4 atau ip6, dan kemudian menyimpan nilai di mana ia menghantarnya ke count.get.collection yang merupakan fungsi yang tersimpan dalam fail count.js kami.
Setelah memeriksa keunikan pengguna, ia kemudian mengembalikan dan menghantar nilai kiraan ke halaman utama sebagai pemboleh ubah setang.
Fail count.js adalah seperti berikut.
//count.jsvar mongo = memerlukan ('mongodb'); // menyokong pangkalan data var mongoose = memerlukan ('mongoose'); // pengendali pakej untuk mongo mongoose.connect ('mongodb: // localhost / loginapp'); var db = mongoose.connection; var Ip = memerlukan ('../ models / ip'); // Count Schema var CountSchema = mongoose. Schema ({id: {type: String,}, hitung: {type: Number,}}); var Count = module.exports = mongoose.model ('Count', CountSchema); module.exports.getCount = function (count, ipc, Public_ip, callback) {// count adalah ujian, callback isfunction ipc.findOne ({ip: Public_ip}, function (err, iptest) {if (! iptest) // tambah ip baru jika tidak ada di dalam pangkalan data, dan kemas kini kaunter {var new_ip = new Ip ({ip: Public_ip, count: 1}); db.collection ('ip'). save (new_ip); // tambahkan ip baru ke pangkalan data count.update (// kemas kini hit counter {id: "hit counter"}, {$ inc: {count: 1}})} lain // kemas kini ip counter tertentu, untuk melihat siapa yang paling banyak mengunjungi {ipc.update ({ip: Public_ip}, {$ inc: {count: 1}})}}); }
Ini membuat skema kiraan, dan fungsi.getCount kami. Fungsi.getCount memeriksa DB untuk pengguna ip dan jika menemuinya, fungsi menambah jumlah pengguna itu, bukan hit counter. Tetapi jika pengguna ip tidak dijumpai, ia akan membuat objek koleksi baru dengan pengguna ip dan menambah hit counter dengan 1.
Ini kemudian dikembalikan dan dipaparkan ke laman web.
Di sana anda mempunyai kaunter pelacakan ip.
Langkah 6: Blog
Pada masa ini saya sedang berusaha untuk mengembangkan blog yang berpusat pada minat saya mengenai perisian, rumah pintar, dan Polaroid. Oleh itu, saya membuat bahagian blog. Blog menggunakan halaman html statik dan rangka hendal. Setelah mencari teknologi yang lebih baik untuk menjadikan blog lebih mudah, saya telah merancang semula laman web saya menggunakan hugo. Hugo adalah penjana html statik. Saya bercakap lebih banyak mengenai perkara ini dalam tutorial yang disebutkan di bawah.
Langkah 7: Selesai
Di sana anda mengikuti tutorial mendalam di laman web node.js saya yang dihoskan secara tempatan di raspberry pi saya. Sekiranya anda mempunyai soalan atau komen sila tinggalkan di bawah.
Saya harap ini dapat membantu orang lain di luar sana.
Untuk pendekatan yang berbeza ke laman web ini menggunakan hugo, penjana halaman web statik melihat tutorial saya yang lain (akan datang).
Disyorkan:
Mengawal Kecerahan Led oleh Raspberry Pi dan Halaman Web Tersuai: 5 Langkah
Mengawal Kecerahan Led oleh Raspberry Pi dan Halaman Web Tersuai: Menggunakan pelayan apache pada pi saya dengan php, saya menemui cara untuk mengawal kecerahan led menggunakan slaid dengan halaman web disesuaikan yang dapat diakses pada mana-mana peranti yang disambungkan ke rangkaian yang sama dengan pi anda . Terdapat banyak cara di mana ini dapat
Kipas ESP8266 POV Dengan Jam dan Halaman Web Teks Kemas kini: 8 Langkah (dengan Gambar)
Kipas ESP8266 POV Dengan Jam dan Halaman Web Teks Kemas kini: Ini adalah kelajuan berubah-ubah, POV (Persistence Of Vision), Kipas yang secara berkala memaparkan waktu, dan dua pesanan teks yang dapat dikemas kini " dengan cepat " Kipas POV juga pelayan web satu halaman yang membolehkan anda menukar dua teks saya
Cara Membuat Halaman Web Mudah Menggunakan Kurungan untuk Pemula: 14 Langkah
Cara Membuat Halaman Web Mudah Menggunakan Kurungan untuk Pemula: Pendahuluan Arahan berikut memberikan panduan langkah demi langkah untuk membuat laman web menggunakan Kurungan. Kurungan adalah penyunting kod sumber dengan fokus utama pada pembangunan web. Dicipta oleh Adobe Systems, ia adalah perisian sumber terbuka dan berlesen
Bagaimana Membangun Laman Web pada Raspberry Pi, Dengan Node.js, Express, dan MongoDB Bahagian 1: 6 Langkah
Bagaimana Membangun Laman Web pada Raspberry Pi, Dengan Node.js, Express, dan MongoDB … Bahagian 1: Selamat datang ke BAHAGIAN 1 tutorial aplikasi web node.js saya. Bahagian 1 akan melalui perisian yang diperlukan yang digunakan untuk pengembangan aplikasi node.js, cara menggunakan port forwarding, cara membuat aplikasi menggunakan Express, dan cara menjalankan aplikasi anda. Bahagian kedua ini
Gabungkan Halaman Web Anda (Pembuat Halaman Google) Dengan Picasa di Talian Album: 5 Langkah
Gabungkan Halaman Web Anda (Pencipta Halaman Google) Dengan Picasa on Line Album: Helo, inilah Instruksinya yang pertama, nikmatilah! terus dengan arahan ini Menyiapkan Laman web dengan Pencipta Halaman Google