Jadual Kandungan
Menyiapkan Persekitaran Anda
Penghalaan dan templat
Helo, dunia!
Kegigihan data dengan pekerja kv
Mengendalikan penyerahan pengguna
Memberi data di halaman utama
Penggunaan
Pembangunan selanjutnya
Rumah hujung hadapan web tutorial css Membina aplikasi tanpa pelayan penuh dengan pekerja Cloudflare

Membina aplikasi tanpa pelayan penuh dengan pekerja Cloudflare

Apr 18, 2025 am 10:58 AM

Membina aplikasi tanpa pelayan penuh dengan pekerja Cloudflare

Pengkomputeran tanpa pelayan telah merevolusikan pembangunan perisian, memudahkan penggunaan dan devOps. Tutorial ini menunjukkan membina aplikasi tanpa pelayan yang menggunakan pekerja Cloudflare, platform yang menstabilkan penskalaan dan infrastruktur. Projek ini, "Repo Hunt," adalah papan pendahulu harian untuk projek sumber terbuka, yang diilhamkan oleh Produk Hunt dan Reddit. Tapak siap boleh didapati di sini .

Pekerja Cloudflare, memanfaatkan rangkaian global Cloudflare, menyampaikan prestasi latensi yang sangat rendah tanpa mengira lokasi pengguna. Alat Wrangler CLI memudahkan bangunan, memuat naik, dan penerbitan. Tutorial ini menggunakan templat "penghala", yang membolehkan penghalaan berasaskan URL. Kod sumber boleh didapati di GitHub [Link-to-Github-Repo].

Menyiapkan Persekitaran Anda

Pasang Wrangler:

 NPM Install -g @Cloudflare/Wrangler
Salin selepas log masuk

Buat projek baru menggunakan templat penghala:

 Wrangler menjana repo-hunt https://github.com/cloudflare/worker-template-router
CD Repo-Hunt
Salin selepas log masuk

Templat penghala menggunakan webpack, yang membolehkan kemasukan modul NPM. Kelas Router mengendalikan penghalaan URL. Contoh asas:

 // index.js
const router = memerlukan ('./ router');

addEventListener ('ambil', event => {
  event.respondenwith (handlerequest (event.request));
});

Async Function HandlereQuest (Permintaan) {
  Cuba {
    const r = router baru ();
    r.get ('/', () => Respons baru ("Hello, World!"));
    const resp = menunggu R.Route (permintaan);
    kembali resp;
  } menangkap (err) {
    mengembalikan respons baru (ERR);
  }
}
Salin selepas log masuk

Pekerja bertindak balas terhadap peristiwa fetch , mengembalikan Response . Tutorial ini menggunakan laluan untuk laman utama ( / ), borang penyerahan ( /post ), dan pengendalian penyerahan ( /repo ).

Penghalaan dan templat

Laluan laman utama ( / ) membuat senarai repositori yang dikemukakan. Kami akan mulakan dengan respons HTML yang mudah:

 // index.js
const router = memerlukan ('./ router');
indeks const = memerlukan ('./ pengendali/indeks');

// ... (sisa indeks.js)

// pengendali/index.js
const headers = {'content-type': 'text/html'};
const handler = () => {
  kembali respons baru ("Hello, World!", {headers});
};
modul.exports = pengendali;
Salin selepas log masuk

Gunakan wrangler preview untuk menguji. Seterusnya, kami akan membuat templat yang lebih canggih:

 // pengendali/index.js
const headers = {'content-type': 'text/html'};
template const = memerlukan ('../ templat/indeks');

// ... (selebihnya pengendali/index.js)

// templat/index.js
susun atur const = memerlukan ('./ susun atur');
const template = () => susun atur (`<h1 id="Helo-dunia"> Helo, dunia!</h1> `);
modul.exports = templat;

// templat/susun atur.js
susun atur const = body => ` $ {body} `;
modul.exports = susun atur;
Salin selepas log masuk

Ini menggunakan templat susun atur untuk gaya yang konsisten (Bulma CSS dimasukkan).

Kegigihan data dengan pekerja kv

Pekerja KV menyediakan kedai nilai utama untuk kegigihan data. Kami akan menyimpan repositori (kunci: repos:${id} ) dan senarai harian (kunci: $date ). Nota: Pekerja KV memerlukan pelan berbayar.

Operasi KV Asas:

 Repo_hunt.put ("mystring", "hello, dunia!"); // Menetapkan nilai
const string = menunggu repo_hunt.get ("mystring"); // Mendapatkan nilai
Salin selepas log masuk

Kami akan membuat kelas untuk menguruskan data repo dan hari:

 // store/repo.js
const uuid = memerlukan ('uuid/v4');

kelas repo {
  // ... (pelaksanaan kelas repo)
}
modul.exports = repo;

// store/day.js
const hari ini = () => tarikh baru (). Tolocaledatestring ();

modul.exports = {
  tambah: fungsi async (id) {// ...},
  getRepos: fungsi async () {// ...}
};
Salin selepas log masuk

Kelas Repo mengendalikan pengesahan dan kegigihan. Day menguruskan senarai repositori harian.

Mengendalikan penyerahan pengguna

Borang (get /post ) membolehkan pengguna menghantar repositori. Post /repo pengendali memproses penyerahan:

 // pengendali/create.js
const qs = memerlukan ('qs');
const repo = memerlukan ('../ store/repo');
const day = memerlukan ('../ store/day');

// ... (buat pelaksanaan pengendali)
Salin selepas log masuk

Ini menggunakan perpustakaan qs untuk menghuraikan data borang, mewujudkan objek Repo , menyelamatkannya ke KV, dan menambah IDnya ke senarai harian.

Memberi data di halaman utama

Laman web kini mengambil semula dan membuat data repositori:

 // pengendali/index.js
// ... (Pengendali Indeks Dikemaskini)

// templat/index.js
// ... (fungsi templat yang dikemas kini untuk membuat repos)
Salin selepas log masuk

Fungsi getRepos Modul Day mengambil dan meneliti objek Repo . Templat membuat setiap repositori.

Penggunaan

Tuntut pekerja.dev subdomain:

 Wrangler subdomain my-subdomain
Salin selepas log masuk

Menggunakan permohonan:

 Wrangler menerbitkan
Salin selepas log masuk

Buat ruang nama KV di papan pemuka Cloudflare dan kemas kini wrangler.toml dengan id ruang nama:

 [[KV-Namespaces]]]
mengikat = "repo_hunt"
id = "$ yournamespaceId"
Salin selepas log masuk

Menerbitkan semula selepas menambah ruang nama KV ke wrangler.toml . Permohonan kini hidup!

Pembangunan selanjutnya

Tutorial ini menyediakan asas untuk aplikasi tanpa pelayan. Peningkatan masa depan boleh termasuk upvoting, komen, dan ciri -ciri yang lebih canggih. Terokai dokumentasi pekerja dan galeri templat untuk idea pembangunan selanjutnya.

Atas ialah kandungan terperinci Membina aplikasi tanpa pelayan penuh dengan pekerja Cloudflare. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

Ia &#039; s! Tahniah kepada pasukan Vue untuk menyelesaikannya, saya tahu ia adalah usaha besar dan lama datang. Semua dokumen baru juga.

Membina aplikasi Ethereum menggunakan redwood.js dan fauna Membina aplikasi Ethereum menggunakan redwood.js dan fauna Mar 28, 2025 am 09:18 AM

Dengan pendakian harga bitcoin baru -baru ini lebih dari 20k $ USD, dan baru -baru ini melanggar 30k, saya fikir ia patut mengambil menyelam yang mendalam kembali ke dalam mewujudkan Ethereum

Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Bolehkah anda mendapatkan nilai harta CSS yang sah dari penyemak imbas? Apr 02, 2025 pm 06:17 PM

Saya mempunyai seseorang yang menulis dengan soalan yang sangat legit ini. Lea hanya blog tentang bagaimana anda boleh mendapatkan sifat CSS yang sah dari penyemak imbas. That &#039; s seperti ini.

Kad yang disusun dengan kedudukan melekit dan sasaran sass Kad yang disusun dengan kedudukan melekit dan sasaran sass Apr 03, 2025 am 10:30 AM

Pada hari yang lain, saya melihat sedikit ini sangat indah dari laman web Corey Ginnivan di mana koleksi kad timbunan di atas satu sama lain semasa anda menatal.

Sedikit di CI/CD Sedikit di CI/CD Apr 02, 2025 pm 06:21 PM

Saya &#039;

Membandingkan penyemak imbas untuk reka bentuk responsif Membandingkan penyemak imbas untuk reka bentuk responsif Apr 02, 2025 pm 06:25 PM

Terdapat beberapa aplikasi desktop ini di mana matlamat menunjukkan laman web anda pada dimensi yang berbeza pada masa yang sama. Oleh itu, anda boleh menulis

Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress Menggunakan Markdown dan Penyetempatan di Editor Blok WordPress Apr 02, 2025 am 04:27 AM

Jika kita perlu menunjukkan dokumentasi kepada pengguna secara langsung dalam editor WordPress, apakah cara terbaik untuk melakukannya?

Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Apr 05, 2025 pm 05:51 PM

Soalan mengenai kawasan slash ungu dalam susun atur flex Apabila menggunakan susun atur flex, anda mungkin menghadapi beberapa fenomena yang mengelirukan, seperti dalam alat pemaju (D ...

See all articles