>> Baiklah jadi kita kembali, beberapa tujuan untuk hari ini,
kita akan mengambil mana kami tinggalkan terakhir kali,
ingat bahwa kami membuat suksesi ini
aplikasi server yang terkait, super sederhana tetapi menggunakan simpul JS
dan kemudian juga baru-baru ini menggunakan sentuhan express AS
dan apa yang diungkapkan JS yang analog dalam dunia PHP.
Jadi mengungkapkan lebih ... dekat,
jadi mengungkapkan pada dasarnya adalah Kerangka MBC itu cukup
populer di dunia js node,
Bookshelf yang akan kita lihat hari ini melalui Tim adalah analog
dari fasih yang merupakan ORM pada mapper objek relasi
yang benar-benar membuat lebih mudah untuk menghindari tingkat rendah kode SQL
dan benar-benar mengekspresikan hubungan di antara berbagai objek.
Jadi salah satu yang paling keren hal-hal jujur
tentang simpul js hanya bagaimana mudah itu cocok
untuk melakukan aplikasi real time, hal-hal seperti chat server
atau server pesan, apa pun yang kalian sekarang menggunakan
seperti Google ... G-chatting atau Google hangout
atau update status Facebook atau bahkan Twitter jika Anda
pada halaman web mereka semuanya adalah semacam real time
atau memberi Anda ilusi real time
dan itu benar-benar sakit di leher hubungannya dengan sesuatu
seperti PHP dan SQL saya benar apa yang kita usulkan
Senin akan menjadi sarana
dengan mana Anda bisa menerapkan ilusi perilaku real time
dengan server obrolan di PHP, apa yang harus Anda lakukan?
Alice mengirim pesan, hits masukkan di mana ia pergi?
Ya.
>> [Bagian tak terdengar]
>> Ke data base dan kemudian apa browser yang Bob memiliki
harus dilakukan untuk benar-benar melihat apa Alice mengatakan, ya?
>> [Bagian tak terdengar]
>> Jaga polling basis data, tepat, sehingga permintaan ajax memiliki
api setiap detik, setiap beberapa detik atau kita berbicara sebentar
tapi tidak melihat contoh sesuatu yang disebut polling panjang,
ada yang ingat bagaimana
mekanisme yang ... pada tingkat tinggi bekerja?
>> [Bagian tak terdengar]
>> Tepat, ya begitu browser masih membuat permintaan ajax
ke server, untuk foo dot php tapi foo dot php sepertinya
untuk menggantung, pada dasarnya duduk dalam beberapa saat loop untuk sebanyak
30 detik biasanya dan hanya sekali foo berkas dot php
menyadari oh ada baris baru
dalam data base tidak itu benar-benar merespon
dengan respon http.
Jadi Anda berpikir bahwa kekuatan ini jika tidak menggantung server
dan itu tidak sampai batas tertentu
tapi itu berarti ada jauh lebih sedikit biaya overhead
karena Anda tidak perlu tcp baru koneksi, koneksi htp baru
untuk benar-benar meminta data dari server.
Tapi simpul js datang dengan sangat perpustakaan populer disebut socket
dot io yang Anda bisa tidak pernah digunakan dibangun di atas
dari teknologi yang disebut web socket yang hadir
dalam browser yang paling modern dan apa socket io dilakukan adalah memungkinkan Anda
untuk membuat dasarnya koneksi secara persistent
antara browser dan server itu overhead yang sangat rendah
sehingga Anda tidak perlu memiliki masalah skala yang sama
bahwa Anda mungkin jika Anda terus memukul server
dalam dunia PHP dan SQL dan sejenisnya.
Bahkan untuk browser lama
yang tidak mendukung socket web perpustakaan ini socket dot io dapat
jatuh kembali berkedip pelaksanaan soket
dan soket adalah jaringan yang hal dari CS143 misalnya.
Atau bahkan bisa jatuh kembali panjang polling itu sendiri sehingga mereka menerapkan
semacam pekerjaan yang sama
sekitar untuk benar-benar menjaga ilusi hubungan itu.
Jadi socket [tidak terdengar] io dan ini adalah dalam bentuk
dari perpustakaan java script, pada dasarnya jika Anda menggunakannya
dalam bentuk js simpul aplikasi Anda tidak hanya menginstal
sebagai sebuah paket menggunakan sesuatu seperti NPM yang kita digunakan pada hari Senin
dan atau Anda juga termasuk mengupas tag di dalam file html Anda
yang mengatakan menggunakan perpustakaan sisi klien.
Jadi ada dua bagian untuk dan apa yang kami lakukan di sini
pada iterasi keempat urutan Senin
contoh adalah sebagai berikut.
Jadi struktur file ini mengingatkan satu set yang sangat umum
untuk js diungkapkan dan untungnya itu adalah cara sederhana
dari lervo [fonetik] itu, ingat ketika Anda mengatur
up lervo Anda punya besar jahat membuang dari seluruh banyak file,
direktori penjual, lib dan sangat beban berat dibandingkan dengan ini.
Sekarang dalam keadilan kita sudah ditelanjangi jauh hal-hal yang cukup banyak
gangguan tetapi semua hal-hal menarik yang benar-benar
dalam modul simpul.
Hanya untuk memberikan rasa jika kita melihat
pada modul simpul ada dua modul atau perpustakaan
bahwa saya telah didownload, ini akan setara
direktori penjual, satu disebut express yang
seperti larevel tetapi dalam simpul
dan socket io salah satu yang saya sebutkan.
Jadi mereka ada sehingga kita bisa lakukan hal berikut jika saya membuka
up katakanlah indeks dot html, mari kita lihat pertama di html,
ini akan menulis tubuh ini, super saya,
super sederhana server obrolan.
Jadi ada tampaknya ul a dengan ide unik pesan
dan di sanalah satu li pada suatu waktu,
semua pesan instan akan muncul antara Alice
dan Bob dan kemudian ada formulir sederhana dengan field teks
dan tombol submit dimana Alice
atau Bob benar-benar dapat pesan satu sama lain.
Jadi efek bersih jika Saya menjalankan aplikasi ini
dengan melakukan simpul app space dot js, jika saya menarik beberapa
dari jendela browser adalah bahwa Alice mungkin di sebelah kanan,
Bob mungkin pada kiri dan hanya
harus jelas tidak ada sihir di sini saya punya satu jendela
dalam penyamaran sehingga tidak ada berbagi kue atau apa
seperti ini, ini adalah dua pengguna yang berbeda.
Aku harus bisa memiliki Alice menyapa Bob, klik submit
dan sekarang Anda lihat di sebelah kiri bahwa pesan Alice dikirim
dan hampir seketika di sebelah kanan.
Tidak ada polling yang tampaknya terlibat, Bob menerima pesan yang sama.
Sekarang Bob mengatakan mengatakan hey Alice Anda melihat efek sebaliknya.
Jadi apa yang sebenarnya terjadi, bagaimana banyak kode yang kita butuhkan untuk menulis
untuk melaksanakan hal ini server obrolan
yang kini Anda dapat memperkirakan mental bahwa setiap orang
di ruangan ini jika ini tidak di saya [tidak terdengar]
tetapi pada foo dot com kita bisa semua mulai chatting instan
satu sama lain.
Jadi apa yang terlibat dan sebelum aku menghapus layar ini ini ini
hanya socket io menjadi sedikit bising, itu hanya mencetak
out informasi debug ke layar,
ada benar-benar lain terjadi di sana.
Jadi biarkan aku membuka app dot js, sehingga seperti sebelumnya kita punya beberapa hal
di bagian atas file.
Sekelompok persyaratan, jadi ini seperti perpustakaan
atau mempertajam petunjuk atau mengharuskan onces apapun model mental Anda
ingin memiliki dan hanya untuk rekap FS digunakan
untuk apa fungsi?
Jadi sistem file sehingga membaca file berpotensi dan hal-hal seperti itu
dan saya menggunakan ini dalam satu tempat seperti yang Anda akan melihat,
express tentu saja ini framework yang kita gunakan,
itu sangat tidak diperlukan kita bisa
seperti pada hari Senin benar-benar membuat http server kita sendiri dari awal
dengan melakukan membuat server dan semua itu semacam kode dari sebelumnya
tapi karena kami akan melihat ini membuat hal-hal sedikit lebih mudah
karena semua harus saya lakukan adalah on line 3 di sini instantiate
dan mengekspresikan objek, saya akan menelepon itu app, agak sewenang-wenang,
Saya kemudian akan memberitahu aplikasi untuk mendengarkan pada port yang sewenang-wenang 1337,
yang bisa 80 oleh konvensi
dan kemudian terakhir aku punya baru line hari yang mengatakan
membutuhkan soket io perpustakaan dan kemudian
dengan pendekatan rantai ini akan dot Operator ini aku hanya
memanggil pelajaran mendengarkan itu dasarnya mengatakan soket
perpustakaan io juga mendengarkan server yang sama
atau web koneksi socket.
Jadi sekarang apa, jadi apa perbuatan ini, empat baris ini
kode di sini yang harus terlihat mengingatkan larevel,
apa ini mewakili?
>> [Bagian tak terdengar]
>> Ini adalah ... rute, hanya rute sehingga dalam aplikasi dot js,
alias Server dot js tergantung pada apa yang orang ingin menyebutnya
dalam aplikasi mereka sendiri Anda memiliki konvensi
melakukan mendefinisikan rute Anda,
app dot get berarti setiap kali Anda mendapatkan permintaan get untuk pergi
untuk untuk benar-benar memangkas pergi ke depan dan memanggil fungsi anonim ini
dan fungsi anonim dalam hal ini diperlukan oleh kebutuhan
atau permintaan dan respon, berpotensi beberapa hal lain
tapi minimal dua ini.
Permintaan memberi Anda akses untuk hal-hal seperti parameter http
dan header dan lainnya hal berair
dan kemudian respon adalah mekanisme
dengan mana Anda dapat menanggapi pengguna.
Jadi ini adalah super sederhana bahkan meskipun kita tidak melihat cukup
kode yang sama terakhir kali, aku menggunakan modul sistem file,
menciptakan metode aliran membaca yang pada dasarnya melakukan itu,
membuat aliran membaca yang berarti pada dasarnya mulai menghirup
up byte dari indeks dot html seefisien mungkin
tanpa harus menunggu sampai Anda membaca seluruh file
dan seperti yang Anda lakukan itu pipa secara harfiah
di vertikal bar akal jika Anda merasa nyaman
dengan baris perintah linux,
pipa untuk respon objek.
Jadi ada dua contoh terkait dengan sungai pada hari Senin,
kita hanya melihat satu tapi Anda dipersilakan untuk melihat kembali
di sungai dan aliran o 1.
Streaming 1 ... 0 lakukan sesuatu yang mirip dengan ini,
aliran 1 melakukan sesuatu hampir persis seperti ini,
ini hanya licin salah satu perusahaan pelayaran mengatakan semacam
dari slurp sesuatu di sini dan kemudian mulai mengirim sini
pada saat yang sama tanpa melakukan massa setuju
dan kemudian hak besar,
pendekatan ini adalah umumnya lebih efisien.
Jadi itu semacam barang lama bahkan jika itu baru pada hari Senin,
ini adalah semua yang diperlukan untuk mengimplementasikan server obrolan
dengan js node dan lebih khusus socket dot io.
Jadi bagaimana cara kerjanya, biarkan aku bergerak ke atas sedikit,
jadi io hanya variabel yang mengacu
kepada kami modul diperlukan sebelumnya,
dot socket hanya properti di dalamnya
yang memberi saya socket fungsi terkait
pada adalah metode umum yang berhubungan dengan apa pendapat umum?
Sebuah acara seterusnya alias mendengarkan beberapa perpustakaan itu hanya berarti
mendengar acara ini yang disebut koneksi
dan sekarang Anda tahu ini hanya dari melihat dokumentasi,
siapa pun yang menulis perpustakaan didefinisikan sebuah acara yang disebut
koneksi yang tidak apa yang Anda akan berpikir
ketika Alice atau Bob menghubungkan.
Pergi ke depan dan menyebutnya fungsi anonim mengambil passing
dalam satu argumen klien yang tampaknya semacam
obyek yang mewakili Koneksi Alice
atau koneksi Bob atau Charlie atau orang lain
dan sekarang kami melakukan hal berikut.
Kami memberitahu klien setelah dia terhubung
untuk mendengarkan secara khusus
untuk pesan yang benar-benar sewenang-wenang disebut pesan
client usus.
Ini adalah sesuatu yang Tim dan Saya datang dengan, itu bisa menjadi foo
atau bar, itu hanya beberapa string unik yang kami butuhkan
untuk memutuskan sebagai para pengembang.
Setiap kali Alice atau Bob mendengar
bahwa acara ini anonim fungsi harus disebut
dan data, isi Alice
atau pesan Bob harus dilewatkan ke dalam event handler ini
dan sekarang apa seharusnya klien melakukannya dengan baik Anda dapat jenis
dari membaca ini cukup intuitif klien harus disiarkan,
atau dikenal sebagai memancarkan suatu pesan yang disebut metode Server
sehingga menandakan pesan ini berasal dari server tidak
dari browser dan apa akan pesan itu menjadi,
itu tampaknya payload dari apa pun yang datang dari klien
dan kami hanya akan sewenang-wenang menyebutnya pesan.
Jadi banyak dari hal ini adalah sewenang-wenang
melalui penamaan wajar konvensi, Tim dan saya datang
dengan, sebagian besar Tim dan kemudian kita hanya menciptakan akhirnya merupakan
chatting server yang melakukan apa, ketika Alice mengirim pesan
dan hit memasukkan apa acara rupanya dipecat,
hanya untuk rekap.
Alice jenis pesan, hits masuk, klien pesan dipecat,
kode ini mendengar itu dan sekarang server menyiarkan apa,
apa hasil akhirnya ini benar-benar?
Alice mengirim pesan sekarang server rebroadcasts itu
efektif untuk semua orang kecuali untuk Alice, mengapa semua orang kecuali
untuk Alice jika Anda hanya melihat
pada client dokumentasi dot dot siaran mengakui,
harfiah melakukan itu, menyiarkan pesan
untuk semua orang kecuali klien yang mengirimkan
bahwa pesan terbaru.
Jadi ini adalah mengapa Anda hanya melihat sekali di setiap sisi,
Anda tidak melihat kedua Alice dan Bob mendapatkan pesan Alice.
Jadi itu saja, ini adalah agen menyampaikan
jika Anda akan itu hanya mengambil dalam pesan
dan rebroadcasting mereka
dan itu sangat scalable Maksudku bahkan
dengan super sederhana server dan beberapa baris
kode Anda bisa pasti menangani ratusan bahkan ribuan
pesan sederhana bersamaan akan bolak-balik seperti ini
dan bayangkan kompleksitas sekarang untuk melakukan hal ini di PHD
atau Larevel atau SQL saya dan berapa banyak kode Anda akan memiliki
menulis untuk benar-benar mencapai itu.
Sekarang dalam keadilan ini tidak benar persisten
jika server turun kita kehilangan seluruh sejarah
sehingga tidak cukup terjemahan yang sempurna tapi itu
yang lurus ke depan.
Mari kita lihat script Java kode kita lewati sebelumnya,
ini adalah Alice dan Klien Bob,
halaman web yang mereka gunakan sekarang mari kita lihat di sini sejenak.
Ada sedikit kode yang lebih
tapi itu cukup banyak hanya jQuery sini sehingga pemberitahuan
bahwa dalam halaman web bahwa saya menarik
up beberapa saat yang lalu kita termasuk perpustakaan jQuery,
soket io perpustakaan dan sebagai samping melihat perbedaan
sini, memangkas miring di awal jalan
seperti ini berarti apa yang tepat,
mana jQuery dot js pada apa server?
Ya.
>> [Bagian tak terdengar]
>> Ini di internet ya harfiah disebut kode dot jQuery
dot com jadi mengapa slash, slash, mengapa tidak hanya satu garis miring,
mana http atau usus besar, apa artinya ini secara umum
jika Anda memangkas miring di awal url?
Ini sebenarnya berguna.
Oke jadi apa jelas hilang http jika kita alasan
melalui ini logis, biasanya Anda tidak perlu
untuk menyebutkan nama-nama server yang tepat
seperti jika hanya menggunakan slash jQuery dot js apa yang diasumsikan
oleh browser?
Bahwa file tersebut pada yang sama server sehingga terus semacam itu
logika jika Anda tidak memberitahu itu protokol apa apa
Browser berasumsi, protokol yang sama sehingga jika Anda pernah mengunjungi website
yang memberikan kesalahan bersama garis konten tidak aman
pada halaman ini itu karena seseorang telah sulit kode http
URL slash slash usus untuk gambar atau file script Java
atau file CSS, sesuatu seperti itu dalam kode sumber halaman
tapi halaman itu sendiri di URL browser adalah http s.
Jadi ini hanya agak jauh mewah
mengatakan saya tidak tahu apa protokol ini
bahwa pengguna akhir ini akan menggunakan
tapi pastikan itu pertandingan sehingga krom
dan browser lainnya tidak berteriak pada pengguna.
Satu-satunya menangkap menjadi orang jQuery sebaiknya menetapkan
up https pada server mereka.
Jadi mereka benar-benar listing di 443.
Baiklah sementara ini satu di sini ini adalah jenis
menyesatkan slash socket io menunjukkan
bahwa ada sebuah direktori bernama socket dot io pada server saya
tapi tidak ada jika kita menyodok
sekitar sana adalah direktori simpul modul
tapi tidak ada masyarakat tentang hal ini,
ketika kita dikonfigurasi socket io untuk mendengarkan pada port yang sama,
1337 pada dasarnya perpustakaan itu bahwa orang lain menulis adalah akan
untuk jenis menyisipkan beberapa kode ke lingkungan simpul js s
dan hanya mendengarkan jalan ini.
Perpustakaan yang baru saja dikonfigurasi rute untuk ini,
itu bukan sebuah direktori nyata.
Ini akan berada dalam lokasi standar.
Oke jadi sekarang menarik bagian,
jadi ketika dokumen siap seperti yang ditunjukkan
oleh jQuery ini membangun, pertama aku akan pergi ke depan
dan terhubung ke soket,
apa soket hanya dengan ... tetap sederhana aku akan menghubungkan
untuk memangkas, itu di mana pengguna,
Aku sudah menyimpan contoh sederhana kita hanya akan menghubungkan
ke URL yang sama persis bahwa pengguna telah mengunjungi maka aku akan
untuk melakukan hal berikut, aku akan memberitahu browser Alice atau Bob
untuk mendengarkan pesan dari server.
Sekali lagi ini bisa menjadi foo
atau bar setiap kali Anda mendengar pesan
dari itu server data panggilan dan kemudian melakukan kode jQuery ini
yang aku menebak kebanyakan jika tidak semua orang akrab
dengan hari ini tetapi dasarnya pin untuk daftar item
dengan UL yang ada yang disebut pesan
yang secara harfiah kata apapun payload adalah
pesan obrolan diikuti oleh tanda hubung, diikuti dengan menerima,
diikuti dengan spasi dan kemudian waktu pembaruan dan itulah sebabnya
harus jelas jika kita kembali
untuk ini Anda mendapatkan tambahan ini peluru lagi dan lagi
dan lagi dengan tanggal kali.
Sementara jika kita melihat di sini kita hanya memiliki
untuk menangani pengiriman formulir jadi itu penerima yang
dari pesan instan, inilah pengiriman dan ini adalah semacam
dari tidak berhubungan dengan js node, mendengarkan ke bentuk menyerahkan acara.
Ketika itu terjadi mencegah default, ini hanya berarti jangan kirimkan
ke server di biasa cara, reload seluruh halaman,
kami ingin melakukan ini semua melalui ajax.
Berikut ini hanya beberapa kode jQuery
untuk benar-benar mendapatkan input yang jenis pesan,
yang namanya pesan pergi ke depan
dan mendapatkan nilai itu maka Anda pergi ke depan
dan jika Anda benar-benar memiliki pesan, jika Alice dan Bob
atau Bob sebenarnya jenis beberapa none 0 jumlah keystrokes memancarkan
pada soket pesan disebut klien pesan dengan muatan yang
dan kemudian turun di sini ini adalah apa yang membuatnya hijau sebagai lawan
merah, kita hanya keluaran alat side [tidak terdengar].
Jadi itu saja tapi semua ini hanya set up,
hal-hal baru yang sebenarnya saya akan berdebat hanya tiga
atau lima baris kode di sini dan semacam petunjuk pada kekuatan
dari js node dan dengan itu perpustakaan khusus ini.
Jadi mari kita cepat melihat express dot js,
jadi apa yang saya akan mencoba untuk dilakukan di beberapa tersisa
menit di sini adalah menyiapkan beberapa ide, beberapa teknik
yang kemudian akan mengambil beberapa menit istirahat, Tim akan mendirikan
dan kemudian kita akan menyelam lebih dalam
untuk lebih menarik mengungkapkan aplikasi dan juga
untuk rak buku, perpustakaan Tim benar-benar menulis
untuk komunitas open source
yang memberi kita cahaya fasih fungsionalitas dengan SQL saya
dan transaksi dan semacamnya lainnya fitur dan ia juga akan menyelam
dalam sedikit lebih ke bahasa Jawa naskah itu sendiri,
bagaimana objek atau non-kelas Model bekerja jika tidak tahu
sebagai model prototipe, beberapa lebih pada yang akan datang.
Jadi mari kita lihat di dua terakhir aplikasi di sini, Server lima
dan server 6 yang semuanya semacam serupa semangatnya,
ini tidak chatting server tapi mereka menggunakan express.
Jadi mari kita lihat apa ini sebenarnya,
Aku akan pergi ke depan dan terbuka ... Aku akan menjalankan aplikasi ini
dengan aplikasi simpul js, aku akan kembali ke browser saya dan kembali
dan ini tampaknya semua server ini lakukan,
itu server super sederhana itu tampaknya pencarian
mesin jadi jika saya ketik foo dan menyerahkan, tidak ada hasil pencarian
untuk foo, saya tidak mendapatkan sekitar untuk menerapkan canggih
back end, semua itu akan
lakukan adalah gema tidak peduli apa Anda mengetik tidak ada hasil untuk foo,
tidak ada hasil untuk bar jadi bagaimana kita melakukan ini
karena ada potongan pasangan, satu,
ada jelas beberapa input yang disediakan
ke server tidak Larevel tentu saja tapi js simpul sekarang
jadi kita perlu entah bagaimana mendapatkan bahwa parameter Q,
kita jelas melakukan semacam pandangan di sini,
kita membuat tampilan jadi mungkin ada kesempatan
untuk template atau variabel interprelation [fonetik]
jadi mari kita lihat di berikut ini.
Dalam aplikasi js untuk ini tertentu server ini adalah semua yang kita miliki.
Salah satu yang kita butuhkan mengekspresikan sendiri, dua modul path
yang hanya melakukan beberapa hal-hal yang berguna
seperti bergabung dengan string bersama-sama dan sebagainya untuk saya,
Saya mendengarkan pada port 1337 dan sekarang ini baru jadi ternyata
bahwa mengungkapkan seperti Larevel mendukung plug ins yang berbeda
dan teknologi dan hal-hal lain dan satu
dari teknologi yang Anda dapat plug in adalah mesin tampilan
yang hanya berarti apa template mesin yang ingin Anda gunakan,
Larevel memiliki itu memiliki hal tetapi Anda bisa pasang
dalam hal yang berbeda, berbeda kerangka P peach memiliki
cara yang berbeda dari template, ejs hanya umum
dan mesin cukup sederhana yang baru saja mari kita Anda melakukan hal-hal
seperti kurung kurawal yang Anda harus di Larevels sintaks
untuk mengganti variabel,
itu sedikit berbeda sintaksis semua.
Jadi sekarang ada hal yang disebut gudang tengah sehingga Anda akan melihat
dalam tim Anda sendiri simpul proyek gudang tengah adalah hanya jenis kode
atau perpustakaan yang Anda menyuntikkan
ke [tidak terdengar] respon siklus hidup aplikasi,
dengan kata lain kedua Garis memberitahu express
untuk melakukan beberapa pekerjaan tambahan antara waktu itu mendapat permintaan
dan antara waktu mengirimkan bahwa permintaan untuk rute Anda sendiri,
kode Anda yang telah Anda tulis.
Jadi khususnya baris ini di sini menggunakan dot mengungkapkan statis dan semua
kompleksitas ini ini hanya berarti jika Anda melihat permintaan
yang datang untuk sebuah file statis seperti foo dot jif atau foo dot css
atau foo dot js sehingga tidak dihasilkan secara dinamis rute,
pergi ke depan dan menganggap itu hidup dalam subdirektori publik,
itu saja yang melakukannya.
Ini adalah semacam pemetaan Larevel, segalanya untuk web Anda
atau direktori publik Anda bukan di Larevel.
Baris berikutnya ini hanya mengatakan Saya ingin menggunakan rute,
Saya ingin menggunakan hal-hal menyukai aplikasi dot mendapatkan
yang kita lihat beberapa saat yang lalu dan kita akan melihat hanya satu detik sekarang.
Jadi app dot mendapatkan sarana mendengarkan untuk rute ini,
slash ketika Anda mendapatkannya menyebutnya fungsi anonim yang mengambil
dalam permintaan dan respon dan sekarang hanya
seperti Larevel Anda memiliki cara rendering template,
respon dot render, mengutip indeks tanda kutip,
membuat adalah template disebut indeks,
itu saja jadi mari kita menangguhkan bahwa benang hanya sejenak melihat
di isi direktori views
dan perhatikan ini juga merupakan super sederhana untuk saat ini,
ada index dot ejs dan mencari dot ejs,
Saya jelas ingin yang pertama
karena itu salah satu saya hanya lelah untuk membuat dan kita akan melihat
di index dot ejs yang paling benar-benar sepenuhnya html
pada saat ini, ada sebenarnya tidak ada template terjadi.
Jadi saya secara teknis tidak bahkan perlu menyebutnya ejs,
Aku tidak membutuhkan fungsi yang tapi aku terus seragam,
jadi itu saja, ini adalah apa yang memberi saya bahwa bentuk super sederhana.
Jadi hanya ada satu rute lain, jika kita melihat di sini saya katakan
bahwa ini adalah apa yang menangani mendapatkan slash pencarian sehingga jenis yang sebenarnya
dari Google seperti handler untuk membentuk pengajuan, ketika Anda mendapatkan
jalan yang menyebutnya fungsi anonim
dan membuat template disebut pencarian
dan apa yang kedua Argumen mungkin berarti.
Sepertinya objek json dari macam atau objek Java script.
Apa peran yang Argumen kedua mungkin?
>> [Bagian tak terdengar]
>> The permintaan yang sebenarnya bahwa pengguna mengetik tampaknya tinggal
dalam permintaan dot permintaan, permintaan mengacu pada segala sesuatu
setelah tanda tanya dot q yang merupakan nama sewenang-wenang
yang saya berikan itu hanya seperti Google
dan sementara itu q usus hanya mengatakan masuk ke template,
pencarian dot ejs, a kunci q dan nilai
apa pun q aktual nilai itu.
Jadi yang meninggalkan hanya satu file yang menarik untuk dilihat,
pencarian dot ejs aku terus ini super sederhana juga,
Ini sebagian besar hanya html kecuali untuk satu baris agak luar biasa
yang merupakan sintaks ini di sini yang terlihat seperti a bunch
dari template yang berbeda Mesin ini hanya berarti steker
nilai q dan membuatnya berani.
Jadi tidak ada pencarian yang sebenarnya fungsi tetapi tidak baik
dari menyarankan bagaimana Anda akan struktur kerangka
dari aplikasi seperti itu.
Sementara itu ... sebenarnya aku mungkin menunjukkan satu hal lain,
melihat bahwa saya memiliki beberapa html di sini untuk file css
dan file Java Script, tidak ada di file-file
pada saat ini, tetapi perhatikan bahwa ada direktori publik
seperti yang saya katakan sebelumnya untuk file statis jadi jika aku pergi
di sana ada direktori css saya,
jika saya masuk ke sana ada yang gaya dot css
dan tidak ada isinya ada
tapi itulah bagaimana Anda akan memiliki file yang dapat diakses publik.
Baiklah mari kita lihat pada satu varian lain di sini
dan kemudian kami akan memperkenalkan satu ide dan istirahat.
Jadi ini adalah server 6 yang terakhir, sehingga ini hampir identik kecuali
untuk bagian bawah dua baris yang terlihat seperti ini.
Jadi benar-benar ada baris ketiga yang berbeda
tapi aku sudah tersembunyi ... jadi biar kembali naik sedikit jadi apakah seseorang ingin
mengusulkan apa yang terjadi di sini dalam istilah awam
atau istilah-istilah teknis apa berbeda tentang versi ini
sehubungan dengan orang-orang baris di atas node.
Apa yang telah saya mungkin dilakukan di sini dan mengapa?
Ya, Sharon.
>> [Bagian tak terdengar]
>> Ya sepertinya saya sudah pindah indeks dan pencarian
jadi terpisah langsung atau sesuatu, Saya sudah diperhitungkan mereka
dan itu sehingga mirip di Larevel Anda bisa meletakkan semua
logika controller dalam rute dot php
dengan fungsi anonim lagi dan lagi dan lagi
tapi file tentu saja bisa jadi sangat besar
sehingga dalam rute dot php apa yang kebanyakan
dari kalian telah melakukan adalah Anda tentukan nama
dari kelas controller atau bahkan nama metode
yang harus dipanggil
jadi ide yang sama di sini bahkan meskipun sintaks ini sedikit
berbeda sehingga di sini pemberitahuan
bahwa saya memiliki rupanya diimplementasikan js simpul saya sendiri
modul dan modul hanya File script Java yang melekat
pada dasarnya satu konvensi bahwa kita akan melihat hanya dalam beberapa saat.
Jadi berasumsi bahwa semua saya fungsi untuk indeks
dan untuk pencari memiliki rupanya dimasukkan ke dalam direktori ini
dan sekarang saya akan menelepon keseluruhan yang modul atau paket atau perpustakaan,
apapun yang Anda inginkan untuk menganggapnya sebagai,
sebagai rute variabel disebut rute.
Jadi rupanya ada rute dot index adalah metode yang disebut
Indeks dan tampaknya ada metode lain yang disebut pencarian
dalam hal ini rute modul atau perpustakaan
dan aku hanya routing hanya agar aku tidak menaruh semua
kode anonim saya dalam file aplikasi saya.
Jadi mari kita pergi ke rute pemberitahuan hanya ada index dot js
dan jika saya lihat di sini adalah konvensi saya maksudkan sebelumnya
jadi ini cukup sewenang-wenang tapi itu node konvensi.
Setiap kali Anda menerapkan sendiri perpustakaan js node,
alias modul Anda pada dasarnya dapat menulis kode Java script Anda
inginkan dalam file ini, maka akan akan pasir yang sangat bersih kotak
sehingga setiap variabel yang memilih untuk tidak akan bertabrakan
dengan perpustakaan orang lain, variabel atau metode atau apa
seperti itu tapi apa pun Anda ingin mengekspos
ke dunia luar ala a metode umum dalam Java script
atau php atau bahasa lainnya Anda harus celepuk dalam
dari obyek global bahwa penulis simpul disebut ekspor.
Jadi dengan melakukan ekspor dot Indeks Saya mengekspos kepada pengguna
modul ini metode yang disebut Indeks yang memetakan ke fungsi ini
jadi anonim sisi kanan
tapi aku secara efektif memberikan nama di sisi kiri
dan mengekspor ke seluruh dunia
sehingga Anda dapat memanggil dot indeks atau dot pencarian.
Jadi harus jelas jika saya juga punya sesuatu seperti function foo
di sini yang melakukan sesuatu
fungsi yang akan benar-benar beroperasi,
itu bisa disebut di file ini tapi tidak ada yang
di dunia luar dingin pernah memanggil foo
karena itu tidak telah diekspor dengan cara ini notasi titik.
Jadi itulah yang terjadi,
semuanya baik nama spasi untuk Anda.
Jadi hasil akhir jika saya melakukan simpul app dan kembali halaman tersebut adalah
bahwa jika saya sekarang mencari
untuk bar ... fungsional aplikasi ini adalah sama
tapi itu hanya semacam langkah menuju implementasi bersih,
tentu saja ketika Anda mulai menulis lebih banyak dan lebih kode
dan itu semua ini.
Jelas tidak terlalu canggih atau kompleks
tapi pada dasarnya titik awal
untuk apa yang akan menjadi Anda pertama app js simpul.
Apa yang akan kita lakukan mungkin nanti minggu ini atau akhir pekan ini
seperti Anda menyelesaikan pada aplikasi php kita akan mengikuti
up dengan cukup sederhana aplikasi untuk tim untuk menyelam
dalam semangat yang sama latihan pemanasan untuk php
yang didasarkan pada survey semester pertengahan,
Orang-orang tidak menemukan membantu akan melalui latihan
melakukan sesuatu yang cukup sederhana
tapi cukup dipandu sebelum Anda benar-benar mengatasi sesuatu yang lebih
Anda sendiri sehingga kita akan menindaklanjuti dengan itu
dan pada dasarnya akan karena seminggu dan setengah
dari sekarang sedikit tumpang tindih dengan php sengaja.
Semua pertanyaan saat itu mengungkapkan, pada socket io
atau kebingungan yang tersisa Senin mungkin.
Baiklah jadi mudah-mudahan salah satu dari mengambil-a-cara sejauh ini
bahwa ada beberapa di antaranya hal tentu jauh lebih sedikit
overhead dari Anda mungkin telah digunakan untuk.
Jadi biarkan saya memperkenalkan satu ide terakhir,
sehingga sangat umum paradigma programing
di Jawa naskah yang benar-benar hadir di jQuery
dalam versi terbaru sehingga mungkin memiliki benar-benar melihat teknik ini
sebelum tapi itu juga cukup umum di dunia js node,
itu umum di Tim perpustakaan Bookshelf sendiri
jadi kita akan kembali ini contoh yang lebih konkrit
suatu saat adalah solusi kode seperti ini,
ini adalah wakil dari kode kita lihat pada hari Senin, sehingga membaca file
dalam konteks ini tidak nyata Metode ini mirip dalam roh
untuk fs dot membaca file tetapi menganggap bahwa ini hanyalah beberapa dibuat
Metode up yang tidak sesuatu yang sangat mirip.
Jadi kami berlari ke dalam beberapa masalah pada hari Senin pada umumnya
jadi apa adalah semacam ... mengapa adalah lereng licin ini,
memanggil kembali ini paradigma programing Java Script
dan dengan memanggil kembali paradigma Aku hanya berarti teknik ini
di mana Anda tidak kembali nilai-nilai segera
karena kekuatan yang memblokir server
dari melakukan sesuatu yang lain yang berguna, Anda malah menelepon kembali
seperti buzzers di Goyang Shack bila Anda siap
untuk lulus kembali respon sebagai argumen.
Ini adalah lereng licin
di mana ia sangat cepat menjadi menjengkelkan mengapa?
Ya.
>> [Bagian tak terdengar]
>> Ya, minimal menjadi jenis terbaca hak
jika Anda memiliki semua panggilan ini punggung dan jika Anda mengikuti
untuk gaya yang baik itu semakin cukup besar-besaran menjorok
dari waktu ke waktu dan kasus saya menunjukkan ini Sebagai contoh jika Anda semacam skim
melalui itu hanya dimaksudkan untuk membuka file json dan mencetaknya,
seperti itu saja dan belum kita memiliki beberapa 8 atau 10 baris disini
yang sudah semacam dari kejam menjorok,
kita punya mencoba menangkap yang
jika Anda tidak terbiasa adalah teknik penanganan kesalahan
yang memungkinkan Anda untuk mencoba sesuatu
dan jika gagal maka Anda menangkapnya mudah-mudahan
tanpa seluruh program Anda mengakhiri tapi ada
begitu banyak kompleksitas seperti Anda jenis dari harus memikirkan hal ini
dan Allah melarang kita melakukan beberapa metode asynchronous panggilan lainnya,
hal tersebut sudah akan berakhir di sini,
Anda mungkin berpikir ini adalah jenis dari estetika konyol tapi ini
karena panggilan kembali Paradigma ini sangat umum setidaknya
dalam kode asli simpul ini sangat cepat menjadi membosankan,
sulit untuk debug, lekukan mulai masalah sehingga Anda dapat mengurutkan
hal mengejar ke bawah, itu bukan hanya cara yang sangat bahagia
programing.
Jadi apa yang orang lakukan
dalam berbagai konteks simpul antara mereka adalah mencoba untuk menyederhanakan ini,
os untuk janji misalnya adalah cara lain untuk berpikir
tentang menulis kode asynchronous yang secara visual ternyata sesuatu
seperti versi 1 ke versi ini 2.
Saya mengklaim dan ini lagi hanya semacam dicampur
antara kode aktual dan pseudo kode, ini adalah wakil
bagaimana Anda akan menerapkan kembali bahwa hal yang sama persis,
membuka file json, mengurai dan mencetaknya
menggunakan sesuatu disebut janji
dan detail sintaksis kunci
bahwa ada sebuah chaining terjadi di sini.
Perhatikan bahwa satu-satunya titik koma
di seluruh ... sebenarnya baik mari kita ... Aku tidak ingin menyesatkan.
Hal ini tidak benar-benar diperlukan tapi mari kita konsisten,
melihat bahwa titik koma yang mengacu pada pembukaan
pernyataan ini seluruh adalah semua jalan di sini.
Jadi sementara saya sudah diformat ini ... jenis terlihat
seperti tiga pernyataan, tiga pernyataan yang mungkin Anda lihat
di Jawa atau bahasa lainnya yang memiliki mencoba dan menangkap
dan penanganan eksepsi lebih umum.
Perhatikan bahwa saya hanya rantai nilai kembali dari masing-masing
metode ini bersama-sama.
Jadi apa yang terjadi, membaca file jika ini adalah metode yang ada,
rupanya mencoba untuk membaca file ini,
dot maka demikian maka adalah sangat nama umum yang diberikan di dunia
janji untuk Metode yang harus mengeksekusi
jika hal sebelumnya berhasil.
Jadi itu seperti keberhasilan handler, sehingga kemudian json dot parse,
baik json dot parse hanya metode
di perpustakaan json dunia dan itu tampaknya mematuhi
dalam hal ini Model janji
jadi kami mengatakan kami hanya bisa menganggap panggilan bahwa orang ini
dan jika ia berhasil maka memanggil orang ini dan kemudian
jika itu benar-benar mengeksekusi hanya konsol log data
bersangkutan.
Jadi di mana kesalahan penanganan, melihat saya sudah semacam
yang sangat membabi buta melangkah dari langkan ini
dan hanya disebut ini Metode dan kemudian metode ini
tanpa pernah memeriksa untuk masalah.
Nah di mana masalah tersebut mungkin ditangani ... dalam ini
laporan cache yang begitu berbeda perpustakaan menggunakan berbeda
konvensi tetapi dalam hal ini kemudian adalah semacam
dari handler keberhasilan, cache adalah semacam penangan error
dan karena kita sudah tidak rusak rantai ini kita hanya tetap menggunakan
notasi titik untuk menghubungkan bersama metode doa asli
file membaca dan fungsi Doa kesalahan apapun
gelembung jalan mereka melalui rantai
sampai mereka benar-benar ditangani yang merupakan cara lebih bersih daripada mencoba
untuk menangani setiap Langkah sialan dari jalan
sehingga kode Anda sangat cepat menjadi data yang nyata.
Dalam hal ini kita mengklaim bahwa kita mencoba
untuk menangkap apa yang disebut kesalahan sintaks itu dasarnya
subclass yang lebih umum kesalahan dan jika itu terjadi klaim
bahwa itu json tidak valid jika jika kesalahan yang lebih umum
bahwa kita tidak mengharapkan lebih umum hanya mengatakan tidak bisa
membaca file.
Sekarang ini hanya dimaksudkan menjadi kode perwakilan
tetapi jika Anda telah diprogram dalam Script baku Jawa atau di Jawa
atau bahasa lain ini adalah kode prosedural dasarnya,
ini adalah tradisi yang lebih mencoba menangkap pernyataan
dan itulah estetika dan fungsi yang menjanjikan
atau mencoba untuk memberikan dimana Anda bisa memikirkan itu
seperti hanya menulis mencoba dan kemudian menangkap dan kemudian menangkap tidak memiliki
khawatir pada setiap titik mungkin
dimana kesalahan mungkin menangani ... terjadi,
Anda dapat menangani semuanya di end yang diperlukan dari blok kecil
kode, dan Anda bahkan dapat membedakan antara kesalahan
yang Anda bisa dalam hal ini di sini.
Jadi nomenklatur yang Anda akan lihat dalam literatur mungkin
sebagai Tim menyajikan beberapa hal ini juga merupakan
bahwa idealnya Anda ingin berjanji untuk menyelesaikan
dan menyelesaikan janji berarti yang akhirnya kembali sehingga untuk berbicara
tapi tidak dengan cara tradisional nilai, sehingga baik berhasil
untuk gagal dasarnya.
Baiklah pertanyaan kemudian, itu tidak dimaksudkan untuk menjadi cukup
pemaparan terhadap janji-janji tapi hanya model mental
untuk kode Anda akan mulai melihat.