Rumah >hujung hadapan web >tutorial js >Panduan untuk Penyebaran Tanpa Pelayan dengan Express dan MongoDB

Panduan untuk Penyebaran Tanpa Pelayan dengan Express dan MongoDB

Lisa Kudrow
Lisa Kudrowasal
2025-02-10 12:47:091008semak imbas

A Guide to Serverless Deployment with Express and MongoDB Tutorial ini akan menunjukkan aliran kerja penggunaan aplikasi Web yang didorong oleh pangkalan data saya. Ia adalah untuk pemaju yang ingin mencapai pembangunan penuh dalam projek individu tanpa perlu menubuhkan dan mengekalkan infrastruktur pelbagai perkhidmatan yang kompleks.

kami akan menggunakan aplikasi web yang sangat asas yang ditulis dalam Node.js dan Express. Ia membolehkan pelawat menulis dan menyimpan nota, serta membaca nota yang ditulis sebelumnya. Data disimpan dalam pangkalan data MongoDB. Kami akan menggunakan tindakan GitHub untuk membuat CI https://www.php.cn/link/29A9F8C8460E5E2BE4EDDE557FD83712CD untuk menggunakan aplikasi kami kepada AWS Lambda.

Tumpuan adalah pada kesederhanaan, kepraktisan dan penjimatan kos. Oleh kerana AWS dan MongoDB mempunyai peringkat percuma yang sangat murah hati, anda boleh belajar secara percuma. Walau bagaimanapun, ingatlah bahawa jika anda tidak mahu membayar beberapa sen, tidak dapat digunakan permohonan itu kemudian. Oleh kerana aplikasi anda akan tersedia secara terbuka, ia mungkin secara teorinya melebihi peringkat percuma dalam jangka masa panjang. Walau bagaimanapun, jika anda merancang untuk menggunakan pelanjutan aplikasi ini untuk tujuan anda sendiri, saya boleh mengesyorkan persediaan ini kerana ia sangat berpatutan untuk laman web yang diperdagangkan dengan sederhana.

Anda boleh mencari semua kod untuk tutorial ini pada akaun GitHub kami.

mata utama
    Penyebaran tanpa pelayan dengan AWS Lambda dan Atlas MongoDB untuk skalabilitas kos efektif dan pengurusan pelayan yang dipermudahkan.
  • Gunakan tindakan GitHub untuk integrasi dan penempatan berterusan, mengemas kini secara automatik dan menggunakan aplikasi ekspres ke AWS Lambda.
  • Gunakan mongoose untuk pemodelan objek, menyimpan data aplikasi di MongoDB, dan menguruskan sambungan pangkalan data dengan cekap dalam persekitaran tanpa pelayan.
  • melindungi contoh MongoDB Atlas dengan menetapkan pengesahan pengguna dan senarai putih alamat IP, walaupun untuk data sensitif, pertimbangkan pilihan yang lebih selamat.
  • Mengintegrasikan AWS API Gateway untuk meningkatkan akses aplikasi dan pengurusan, membolehkan URL awam dan konfigurasi domain tersuai yang berpotensi.
  • Gunakan Docker untuk Persediaan Pembangunan Tempatan untuk MongoDB dan Node.js, memastikan persekitaran yang kuat untuk membina dan menguji aplikasi ekspres.

    prasyarat

    Membina permohonan memerlukan beberapa barangan. Pastikan nod dan Docker dipasang pada sistem anda. Untuk memasang nod, anda boleh menggunakan Pengurus Versi Node (NVM) (lihat beberapa arahan di sini). Untuk Docker, pasangkan versi terkini Docktop Docktop untuk sistem operasi anda.

    Sila ambil perhatian bahawa kami akan menggunakan Docker untuk menjalankan contoh MongoDB pada mesin kami. Sebagai alternatif, anda boleh memasang Edisi Komuniti MongoDB secara manual. Anda boleh mendapatkan beberapa arahan di sini.

    Anda juga perlu mempunyai akaun di GitHub, MongoDB, dan Amazon Web Services (AWS). Apabila mendaftar di AWS, anda mesti memasukkan nombor kad kredit anda. Seperti yang disebutkan di atas, ikuti langkah -langkah dalam tutorial ini tidak akan melebihi peringkat percuma.

    Beberapa pengetahuan persediaan tentang nod dan ekspres mungkin membantu.

    Pembangunan Tempatan

    Baiklah, mari kita mulakan. Kami mula -mula memerlukan folder kosong dengan fail Package.json baru. Jika anda melakukan NPM Init, anda boleh membuatnya.

    kita perlu memasang kebergantungan berikut:

    1. Express, digunakan untuk bertindak balas terhadap permintaan HTTP dari klien
    2. mongoose, digunakan untuk berkomunikasi dengan pangkalan data MongoDB kami
    3. AWS-Serverless-Express, untuk AWS Lambda dapat menghubungi aplikasi kami
    4. serentak (sebagai kebergantungan pembangunan), digunakan untuk melaksanakan skrip NPM secara selari

      jalankan arahan berikut untuk memasangnya:

       <code class="language-bash"> NPM Install--Save Express Mongoose AWS-Servertless-Express && NPM Install--Save-Dev Serentak <https:> <https:>
      <h3> 1
      <https:> Oleh kerana kami menggunakan pangkalan data MongoDB untuk menyimpan data kami, menjalankan contoh pangkalan data pada mesin tempatan adalah berguna untuk pembangunan. Di sinilah kita menggunakan imej Docker <st> mongo <p> terkini. Jika Docker dipasang pada mesin anda, taipkan Docker Run Mongo di terminal. Imej akan diekstrak dari DockerHub dan dilancarkan dalam bekas baru. Jika anda tidak biasa dengan Docker, tidak mengapa. Anda hanya perlu tahu bahawa contoh MongoDB sedang berjalan di komputer anda dan anda boleh berkomunikasi dengannya. <em>
      <https:> Agar permohonan kami berkomunikasi dengan pangkalan data, kita perlu memulakan sambungan. Kami melakukan ini dalam fail baru yang dipanggil Mongoose.js.Mongoose 是帮助我们进行 MongoDB 对象建模的库: <https:>
      <pre class="brush:php;toolbar:false"> <s> https://www.php.cn/link/29a9f8c8460e5e2be4edde5557fd83712https://www.php.cn/link/29a9f8c8c8c8
      
      const mongoose = memerlukan ("mongoose");
      
      const uri = process.env.mongodb_url;
      
      biarkan sambungan;
      const connect = async () = & gt; {
        Cuba {
          sambungan = menunggu mongoose.createConnection (uri, {
            usenewurlparser: benar,
            UseFindAndModify: False,
            UseUnifiedTopology: Benar,
            BufferCommands: palsu, https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29f8c8c8c8c8550e.
            Buffermaxentries: 0, https://www.php.cn/link/29a9f8c8460e5e2be4edde5557fd83712https://www.php.cn/link/29f8f8c8460ebonberding
          });
          sambungan kembali;
        } menangkap (e) {
          Console.error ("Tidak dapat menyambung ke MongoDB ...");
          membuang e;
        }
      };
      
      fungsi getConnection () {
        sambungan kembali;
      }
      
      modul.exports = {connect, getConnection}; <code class="language-javascript"> <https:>
      <https:> 此文件导出一个包含两个函数的对象。Connect () 创建一个到我们环境变量中指定位置的 MongoDB 的连接。该连接存储在一个名为 Sambungan 的变量中。GetConnection () 只是返回 Sambungan 变量。您可能想知道为什么我们不直接返回 Sambungan 变量本身。这是因为 node.js 在第一次加载后会缓存所需的模块。因此, 我们使用一个函数从我们的 mongoose.js 模块中提取最新的Sambungan 变量。 <p>
      <https:> 现在我们的应用程序能够连接到数据库, 我们也希望在其中存储数据 - 更具体地说, 是我们可以在用户界面中编写的笔记。因此, 我们将为我们的笔记创建一个数据模型。这在 Model 文件夹内名为 notes.js 的新文件中完成: <p>
      <https:> <s> https://www.php.cn/link/29a9f8c8460e5e2be4edde5557fd83712https://www.php.cn/link/29A9F8 CN/LINK/29A9F8C8460E5E2BE4EDDE557FD83712NOTES.JS
      
      const mongoose = memerlukan ("mongoose");
      const {getConnection} = memerlukan ("..https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose");
      const conn = getConnection ();
      const skema = mongoose.schema;
      
      modul.exports = conn.model (
        "Nota",
        skema baru ({text: {type: string, diperlukan: true}})
      ); <pre class="brush:php;toolbar:false"> <code class="language-javascript">
      <https:> 在这里, 我们从 mongoose.js 模块中提取当前连接, 并在其上注册一个名为 Nota 的模型。它有一个非常基本的模式, 只包含一个名为 Text 的必需属性, 类型为 String 。Menggunakan model ini, kita boleh membina dokumen yang disimpan dalam pangkalan data. <https:>
      <h3> 2
      <https:> Seterusnya, kami membuat aplikasi Express mudah. Buat fail bernama app.js dalam direktori root projek.它具有以下内容: <https:>
      Https://www.php.cn/lininK/29A9F8C8460E10BASE.
      
      const express = memerlukan ("Express");
      
      const app = express ();
      
      app.use (express.Urlencoded ({extended: false}));
      
      app.get ("https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", async (req, res) = & gt; {
        Cuba {
          nota const note = memerlukan (memerlukan (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde5557fd83712modelshttps: //www.php.cn
          const notes = menunggu nota.find ({});
          kembali res.Status (200) .Send (
            `
            <pre class="brush:php;toolbar:false">
                html {
                    Teks-Align: Pusat;
                    latar belakang warna: #93C5FD;
                    Font-Family: "Segoe Ui", Tahoma, Geneva, Verdana, Sans-Serif;
                    Warna: Putih;
                    saiz font: 2rem;
                }
      
                textarea {
                    Saiz semula: Tiada;
                    Sempadan: 2PX Solid #9CA3AF;
                    Radius sempadan: 4px;
                    latar belakang warna: #f3f4f6;
                    Padding: 0.5rem;
                    lebar: 90%;
                }
      
                butang {
                    padding-left: 2rem;
                    padding-right: 2rem;
                    Padding-top: 7px;
                    Padding-Bottom: 7px;
                    latar belakang warna: #f3f4f6;
                    Sempadan: 2PX Solid #9CA3AF;
                    Warna: #4B5563;
                    Radius sempadan: 4px;
                }
      
                p {
                    Sempadan-bawah: 2px pepejal;
                    Padding: 1rem;
                    Teks-Align: Kiri;
                }
            <code class="language-javascript">
            <style>
                <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712style> <form method="POST"> <s>
                <textarea name="text"> Simpan <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712textarea>
            <br>
            <button type="submit"> nota saya <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712button>
            $ {notes.map ((n) = & gt; `<https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712form> $ {n.text} <h1>`) .join ("")}
            `
          );
        } menangkap (e) {
          kembali res.send (e);
        }
      });
      
      app.post ("https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", async (req, res) = & gt; {
        Cuba {
          nota const note = memerlukan (memerlukan (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde5557fd83712modelshttps: //www.php.cn
          const note = nota baru (req.body);
          menunggu nota.save ();
          kembali res.send ("Nota disimpan. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h1> Refresh <p>");
        } menangkap (e) {
          kembali res.send (e);
        }
      });
      
      Module.exports = app; <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> Seperti yang saya katakan, aplikasinya sangat kasar dan hanya digunakan sebagai demonstrasi. Pertama, kami melancarkan aplikasi Express. Kami kemudian menceritakannya untuk menghuraikan badan permintaan masuk untuk kami, menggunakan middleware urlencoded terbina dalam untuk dapat menggunakan data borang yang dikemukakan. Aplikasi ini mempunyai dua kaedah untuk mengendalikan permintaan pada direktori akar aplikasi: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <ul>
      <li>
      <p> app.get ("https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", ...) mengendalikan permintaan http. Apabila pengguna kami memuat halaman, ia dipanggil. Kami mahu menunjukkan kepada mereka halaman mudah di mana mereka boleh menaip nota dan menyimpannya. Di samping itu, kami juga ingin memaparkan nota bertulis sebelum ini. Dalam fungsi panggilan balik pengendali permintaan, kami memerlukan model nota kami. Model ini mestilah diperlukan dalam fungsi panggilan balik dari pengendali permintaan pos kami, kerana ia memerlukan sambungan pangkalan data semasa - sambungan mungkin tidak wujud apabila fail app.js dimuatkan untuk kali pertama. Kemudian, kami menggunakan kaedah Cari untuk menerima semua nota dalam pangkalan data. Kaedah ini mengembalikan janji. Jadi kita tunggu untuk menghuraikannya. Akhir sekali, kami menggunakan kaedah hantar objek tindak balas (RES) untuk menghantar rentetan kembali kepada pelanggan. Rentetan ini mengandungi sintaks HTML yang membuat pelayar sebagai elemen HTML sebenar. Untuk setiap nota dalam pangkalan data kami, kami hanya menambah elemen perenggan yang mengandungi teksnya. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Ini adalah di mana anda boleh menukar contoh yang sangat rendah ini ke dalam antara muka pengguna yang bagus. Anda bebas memilih apa yang hendak dihantar kepada pelanggan. Sebagai contoh, ini boleh menjadi aplikasi React Client yang dibundel sepenuhnya. Anda juga boleh memilih kaedah rendering sisi pelayan-contohnya, dengan menggunakan enjin paparan ekspres seperti hendal. Bergantung pada apa itu, anda mungkin perlu menambah lebih banyak laluan ke aplikasi anda dan menyampaikan fail statik seperti pakej JS. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712li>
      <li>
      <p> app.post ("https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", ...) mengendalikan permintaan pos http. Apabila pengguna menyimpan nota mereka, ia dipanggil. Sekali lagi, kita mula -mula memerlukan model nota kita. Muatan permintaan boleh diakses melalui atribut badan objek permintaan (Req). Ia mengandungi teks yang dikemukakan pengguna. Kami menggunakannya untuk membuat dokumen baru dan menyimpannya menggunakan kaedah simpan yang disediakan oleh Mongoose. Sekali lagi, kami menunggu operasi tak segerak ini untuk disiapkan, kemudian memberitahu pengguna dan memberi mereka kemungkinan menyegarkan halaman. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712li>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712ul>
      <p> Agar permohonan kami benar -benar mula mendengar permintaan HTTP, kami mesti memanggil kaedah mendengar yang disediakan oleh Express.Kami akan melakukan ini dalam fail dev.js yang berasingan ditambahkan ke direktori root projek: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <pre class="brush:php;toolbar:false"> <code class="language-javascript"> https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.pn/link/29f8c8be: :::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::
      
      const app = memerlukan (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712App");
      const {connect} = memerlukan (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose");
      
      sambung ();
      
      const port = 4000;
      
      app.listen (port, () = & gt; {
        Console.log (`App Mendengarkan pada port $ {port}`);
      }); <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> di sini, kami memanggil fungsi Connect dalam fail Mongoose.js. Ini akan memulakan sambungan pangkalan data. Akhir sekali, kami mula mendengar permintaan HTTP di port 4000. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Memulakan imej Docker Mongo dengan dua arahan berasingan dan aplikasi kami agak menyusahkan. Oleh itu, kami menambah beberapa skrip ke fail pakej.json kami: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <pre class="brush:php;toolbar:false"> <code class="language-json"> "skrip": {
        "Mula": "serentak 'npm: mongodb' 'npm: dev'",
        "dev": "mongodb_url = mongoDB: https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https: //www.php.cn/link/29a9f8c8611061100000100000100001001001001001001001120 OST: 27017 node dev.js ",
        "MongoDB": "Docker Run -P 27017: 27017 Mongo"
      } <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> MongoDB memulakan contoh MongoDB dan peta pelabuhan kontena 27017 ke port 27017 mesin tempatan. Dev melancarkan aplikasi kami dan menetapkan pembolehubah persekitaran mongodb_url yang dimuatkan dalam fail mongoose.js untuk berkomunikasi dengan pangkalan data kami. Skrip Mula melaksanakan kedua -dua skrip secara selari. Sekarang kita hanya perlu menjalankan NPM bermula di terminal untuk memulakan permohonan kami. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> anda kini boleh mengakses http: https://www.php.cn/link/29a9f8c8460e5e2be4edde5557fd83712https://www.php.cn 4000 untuk memuatkan aplikasi.<https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284121297.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <s>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> <h2> penyebaran <strong> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712strong>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h2> Sudah tiba masanya untuk menggunakan permohonan kami. Kami akan menggunakan fungsi Lambda pada AWS, MongoDB Atlas, dan AWS API Gateway. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> 1. Mengapa kita menggunakannya? <h3>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3> Fungsi Lambda adalah cara untuk melaksanakan kod sebagai tindak balas kepada permintaan HTTP tanpa mengekalkan pelayan. Mereka hanya menjalankan permintaan, yang bermaksud anda tidak perlu membayar untuk masa pelayan jika tiada siapa yang memanggil perkhidmatan anda. Sebaliknya, jika ramai orang memanggil perkhidmatan anda, AWS akan secara automatik skala dan akan melancarkan lebih banyak contoh Lambda. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> seperti namanya, fungsi Lambda adalah fungsi yang boleh anda isi dengan apa sahaja yang anda mahukan. Hanya ada satu pengecualian: kod anda tidak boleh dikatakan, kerana contoh Lambda akan ditutup sebaik sahaja ia tidak lagi dilaksanakan. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Kami membungkus keseluruhan aplikasi dalam fungsi lambda dan menggunakannya pada AWS Lambda. AWS Lambda mempunyai peringkat percuma yang sangat murah hati dan tidak terhad yang merangkumi satu juta permintaan percuma setiap bulan dan 400,000 GB saat! Oleh itu, anda boleh mencuba dengan selamat dengan perkhidmatan dan menggunakan pelbagai fungsi Lambda tanpa membayarnya. Ingat, jika anda tidak mahu menggunakannya lagi, padamkan fungsi ini. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> 2.
      <h3> Sekarang, log masuk ke Konsol Pengurusan AWS anda dan menavigasi ke AWS Lambda. Di bawah bahagian <stion <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3> fungsi, klik <p> untuk membuat fungsi <em>. Sebelum ini, adalah penting bahawa anda telah menentukan rantau ini untuk menggunakan perkhidmatan tersebut. Pada komputer desktop, anda boleh memilih kawasan di sudut kanan atas konsol pengurusan. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>
      <em> Pilih <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> untuk membuat dari awal <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> dan namakan fungsi anda.Saya menamakannya <em> Express-Lambda-Example <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Di bawah <em> runtime <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, pilih <em> node.js 12x <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> dan buat fungsi. Anda akan melihat tetingkap seperti yang ditunjukkan di bawah: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284443353.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <s>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Fungsi Lambda kami sudah mengandungi beberapa kod ujian. Anda boleh mengabaikan ini kerana kami akan menimpanya kemudian. Jika anda menatal ke bawah halaman, anda akan melihat seksyen yang dipanggil <p> pembolehubah persekitaran <em>. Ingat, dalam skrip pembangunan tempatan kami yang terdahulu, kami menentukan pembolehubah yang dipanggil mongodb_url? Kami perlu membuat pembolehubah yang sama di sini supaya contoh Lambda kami dapat berkomunikasi dengan pangkalan data kami. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>
      <St> Walau bagaimanapun, kami belum menjalankan pangkalan data lagi. Kami tidak mahu menggunakan mesin tempatan kami untuk tujuan ini. Itulah sebabnya kami akan membuat kluster peringkat percuma MongoDB Atlas. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> 3.
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Untuk membuat kluster peringkat percuma, buat akaun di mongoDB.com. Semasa proses pendaftaran, anda akan diminta untuk memilih jenis kluster. Pilih cluster dikongsi percuma <h3>. Langkah seterusnya ialah menamakan projek anda. Di samping itu, anda boleh memilih bahasa pengaturcaraan kegemaran anda. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Dalam langkah seterusnya, anda boleh memilih pembekal awan dan wilayah. Oleh kerana kami sudah menggunakan AWS untuk aplikasi Node.js kami, saya cadangkan anda memilihnya dan, jika boleh, pilih rantau yang sama yang anda pilih pada AWS. Dalam bahagian seterusnya, anda boleh menentukan tahap mana yang hendak digunakan. Pilih tahap <em> m0 Sandbox <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. MongoDB tidak mengesyorkan menggunakan hierarki ini dalam persekitaran pengeluaran, tetapi untuk pemula ia akan menyediakan semua yang anda perlukan.<https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284592009.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <s>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Beberapa minit kemudian, kluster kami akan bersedia untuk digunakan. Satu -satunya perkara yang hilang sekarang ialah akses kepadanya. Klik <p> dalam menu untuk mengakses <em> dan buat pengguna baru. Kaedah pengesahan ialah <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> kata laluan <em>. Memberikan pengguna membaca dan menulis keizinan. Selepas ini selesai, kita perlu memaparkan senarai alamat IP yang boleh mengakses pangkalan data kami. Anda boleh melakukan ini di bawah seksyen <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> akses rangkaian <em>. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Malangnya, kami tidak tahu IP setiap contoh Lambda yang cuba menyambung ke kluster kami. Oleh itu, kami akan memaparkan mana -mana alamat IP dengan menambah 0.0.0.0 https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd837120. Sila ambil perhatian bahawa ini tidak disyorkan jika anda mempunyai data sensitif dan ingin memastikan tahap perlindungan data yang tinggi. Kelompok kami kini dilindungi hanya oleh kelayakan yang kami berikan kepada pengguna pangkalan data. Menyediakan sambungan rakan sebaya akan menjadi penyelesaian yang mungkin untuk masalah ini. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Sekarang, kembali ke kluster anda dan klik <p> sambungan <em>. Dalam tetingkap mod pop timbul, klik <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> untuk menyambungkan aplikasi anda <em>. Kemudian, pilih Node.js versi 2.2.12 atau lebih baru dan salin rentetan sambungan. Kembali ke Konsol Fungsi Lambda kami di AWS, buat pembolehubah persekitaran baru yang dipanggil mongodb_url dan tampal rentetan sambungan di dalamnya. Pastikan untuk menggantikan pemegang tempat dalam rentetan dengan kelayakan pengguna pangkalan data dan nama pangkalan data. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> 4.
      <h3> Agar AWS Lambda untuk memanggil permohonan kami, kami perlu menyediakan skrip kemasukan baru yang serupa dengan apa yang kami lakukan dalam fail dev.js.Kami akan menamakannya index.js, yang mempunyai yang berikut: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <stww.php.cn/link/29a9f8c8460e5e2e2be5557fd83712https://www.php.cn
      const AwsServerLessExpress = memerlukan ("AWS-Serverless-Express");
      const {connect} = memerlukan (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose");
      
      biarkan sambungan = null;
      
      modul.exports.handler = async (event, context) = & gt;
        context.CallBackWaitSForEmptyEventLoop = false;
      
        jika (sambungan === null) sambungan = menunggu sambung ();
        const app = memerlukan (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712App");
        const server = AWSServerLessExpress.Createserver (APP);
        kembali awsserverlessexpress.proxy (pelayan, acara, konteks, "janji"). Janji;
      }; <pre class="brush:php;toolbar:false"> <code class="language-javascript">
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> di sini, kami menggunakan perpustakaan AWS-Serverless-Express. Ia pada dasarnya mempunyai fungsi yang sama seperti kaedah pendengaran dalam dev.js. Ia membolehkan permohonan kami memproses permintaan klien dalam persekitaran Lambda. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> Sekarang, ada satu perkara penting untuk diperhatikan mengenai fail Lambda.js kami. Setiap kali fungsi lambda dipanggil, fungsi pengendali dilaksanakan. Segala -galanya di luar fungsi pengendali dimulakan sekali apabila bekas Lambda dimulakan dan mungkin berterusan di antara pelbagai panggilan Lambda. Inilah sebabnya kami menyimpan objek sambungan MongoDB dalam skop global fail. Setiap kali fungsi pengendali dijalankan, ia memeriksa sama ada sambungan telah dimulakan. Jika ya, fungsi itu semula bukannya menyambung semula ke pangkalan data setiap kali. Ini sangat penting kerana ia menjimatkan banyak masa pelaksanaan. Agar sambungan berterusan dalam pelbagai panggilan, kita perlu menetapkan konteks.callbackwaitforEmptyEventLoop kepada palsu. Anda boleh membaca lebih lanjut mengenai ciri ini di sini. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> 5.
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Langkah seterusnya adalah untuk membuat CI https://www.php.cn/link/29A9F8C8460E5E2BE4EDDE557FD83712CD menggunakan tindakan GitHub. Ini bermakna setiap kali kita menolak perubahan kod ke repositori GitHub, kita mahu mencetuskan saluran paip. Paip ini secara automatik mengendalikan mengemas kini fungsi Lambda kami pada AWS. Jakob Lind menerangkan proses ini dengan baik dalam artikelnya "Bagaimana untuk menubuhkan AWS Lambda dan penempatan automatik dengan tindakan GitHub". Saya akan meringkaskan bahagian utama. <h3>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3> Untuk mendapatkan GitHub untuk menubuhkan dan memulakan aliran kerja, kami berada di jalan https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712.githubhttp: .yml dalam e2be4edde557fd83712workflows file.它包含以下 yaml 代码: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <pre class="brush:php;toolbar:false"> <code class="language-yaml"># https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712.githubhtps://www.php.cn /www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712deploy.yml
      
      Nama: Deplek ke Lambda
      pada:
        Tolak:
          Cawangan:
            - Utama
      Pekerjaan:
        menyebarkan:
          Nama: Deploy
          Strategi:
            Matrix:
              Nod-versi: [12.x]
          Runs-on: Ubuntu-latest
          Langkah:
            - Menggunakan: ActionShttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712checkout@v1
            - Nama: Persediaan NodeJS
              Penggunaan: ActionShttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712setup-node@v1
              dengan:
                Node-Vision: $ {{Matrix.Node-Version}}
            - Nama: NPM Pasang
              Jalankan: NPM CI -pengeluaran
            - Nama: Zip
              Penggunaan: Montudorhttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712action-zip@v0.1.1
              dengan:
                args: args: zip-qq-r.https: //www.php.cn/lininK/29A9F8C8460E2E2BBE8BBE12PP.ZIP: //Wwww.php.CN
            - Nama: Tolak ke Lambda
              Penggunaan: Appleboyhttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712ambda-action@master
              dengan:
                AWS_ACCESS_KEY_ID: $ {{Secrets.aws_access_key}}
                AWS_SECRET_ACCESS_KEY: $ {{secrets.aws_secret_key}}
                AWS_REGION: EU-Central-1 # 请替换为您的 AWS 区域
                function_name: Express-lambda-contoh
                zip_file: app.zip <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> 该文件告诉 Tindakan GitHub 在每次推送到存储库的主分支时执行一个名为 Deploy 的作业。对我来说, 将其仅限于主分支非常有用。因此, 您可以安全地推送到您的开发分支, 而不会将不需要的代码部署。 <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> menggunakan 作业只是安装所有必要的库, 将整个项目压缩, 并将其推送到 aws lambda 。请注意, yaml 文件需要通过环境变量访问 aws 访问密钥: aws_access_key 和 aws_secret_key 。您可以通过在 aws 上的身份和访问管理控制台中创建新用户来生成这些密钥。获得密钥后, 您需要将它们另存为 GitHub 项目设置下的环境变量, 位于 <em> Rahsia <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> 下。 <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> 要使您的应用程序在 aws lambda 上准备好, 您需要提交您的代码并将其推送到 github 存储库的主分支。 <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> 6. 使用 AWS API Gateway 使我们的应用程序可访问 <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> 现在我们的应用程序已准备好用于实时环境。但是, 我们没有通过 Web 访问它的方法。这就是我们接下来使用 AWS API Gateway 所做的。Sila ambil perhatian bahawa API Gateway juga mempunyai peringkat percuma. Walau bagaimanapun, pakej ini terhad kepada 12 bulan. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Dalam konsol AWS anda, navigasi ke perkhidmatan Gateway API dan klik <em> Buat API <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, pilih <em> REST API <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, namakannya dan simpannya. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Untuk menyambungkan Gateway API ke fungsi Lambda kami, kami membuat kaedah baru yang meneruskan permintaan HTTP ke fungsi Lambda kami. Oleh itu, dalam menu drop-down <em> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, pilih <em> Buat Kaedah <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> dan pilih <em> mana-mana <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Anda harus melihat skrin seperti yang ditunjukkan dalam imej berikut. Pastikan kotak semak <em> menggunakan kotak semak Lambda Agent Integration <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> dipilih. Masukkan nama fungsi Lambda dan simpannya. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284649066.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <s>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Seterusnya, kita perlu menyediakan integrasi proksi Lambda. Ini pada dasarnya bermakna bahawa semua permintaan pelanggan harus diarahkan semula seperti fungsi Lambda kami. Oleh itu, kami mencipta sumber baru dalam menu drop-down <p> tindakan. Dalam tetingkap Mod Pop-Up, pilih <em> konfigurasi sebagai kotak semak Proksi Sumber <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> (lihat di bawah) dan simpan.<https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284977045.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <s>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Ini akan mewujudkan kaedah lain yang perlu kita sambungkan ke fungsi lambda. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Terakhir tetapi tidak kurang, kami menggunakan API kami dengan memilih <p> menggunakan API <em> dalam <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> tindakan <em> menu drop-down. Dalam tetingkap pop timbul, pilih <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> [tahap baru] <em>, namakan panggung dan gunakannya. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> itu sahaja. Anda boleh mengakses aplikasi kami dengan mengklik url <p> url <em> yang terdapat dalam editor peringkat <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> <em> fasa yang dibuat. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> Panggilan URL <em> adalah URL awam yang dipetakan ke Gateway API kami. Sudah tentu, anda juga boleh menggunakan domain tersuai untuk melakukan ini. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> <h2> Kesimpulan <strong> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712strong>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h2> anda akan melihat bahawa menggunakan aplikasi yang lebih kompleks yang memerlukan pangkalan data tidak semestinya sukar. Sudah tentu, aliran kerja yang saya tunjukkan jauh dari sempurna dan tidak mempunyai banyak ciri yang diperlukan oleh aplikasi besar dalam jangka masa panjang. Tetapi bagi saya, ia telah terbukti mudah, praktikal dan ekonomik untuk laman web dengan trafik yang rendah dan sederhana. Saya menggunakan timbunan teknologi yang sangat serupa untuk membina dan menggunakan JSChallenger. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Jika anda mempunyai sebarang idea atau komen, sila hubungi: @Kueckelheim melalui Twitter. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> <h2> FAQs (FAQs) pada penempatan tanpa pelayan dengan Express dan MongoDB <strong> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712strong>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h2> Apakah faedah menggunakan Express dan MongoDB untuk penempatan tanpa pelayan? <h3>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3> Penyebaran tanpa pelayan dengan Express dan MongoDB mempunyai beberapa kelebihan.Pertama, ia membolehkan pemaju memberi tumpuan kepada menulis kod tanpa bimbang tentang pengurusan pelayan. Ini kerana seni bina tanpa pelayan secara automatik menguruskan pelayan untuk anda. Kedua, ia adalah kos efektif kerana anda hanya perlu membayar masa pengiraan yang anda makan. Tiada yuran yang dikenakan apabila kod anda tidak berjalan. Ketiga, penyebaran tanpa pelayan secara automatik akan berdasarkan saiz beban kerja anda. Ini bermakna permohonan anda boleh mengendalikan lebih banyak permintaan apabila permintaan meningkat tanpa campur tangan manual. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> bagaimana debug aplikasi tanpa pelayan saya? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Pengalihan aplikasi tanpa pelayan boleh menjadi agak rumit kerana sifatnya yang diedarkan. Walau bagaimanapun, terdapat beberapa cara yang boleh anda gunakan untuk menyahpepijat permohonan anda. Salah satu kaedah yang paling biasa ialah menggunakan pembalakan. Anda boleh merakam maklumat penting mengenai pelaksanaan aplikasi dan kemudian menganalisis log ini untuk mencari sebarang masalah. Pendekatan lain ialah menggunakan alat penjejakan yang diedarkan seperti AWS X-ray. Alat ini memberikan pandangan mengenai prestasi aplikasi dan di mana kesesakan berlaku. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Bolehkah saya menggunakan middleware Express dalam aplikasi tanpa pelayan? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Ya, anda boleh menggunakan middleware Express dalam aplikasi tanpa pelayan. Fungsi Middleware Express adalah fungsi yang boleh mengakses objek permintaan (REQ), objek tindak balas (RES), dan fungsi middleware seterusnya dalam kitaran permintaan permintaan aplikasi. Fungsi-fungsi ini boleh melaksanakan sebarang kod, menukar objek permintaan dan tindak balas, menamatkan kitaran permintaan-tindak balas, dan hubungi fungsi middleware seterusnya. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> bagaimana melindungi aplikasi tanpa pelayan saya? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Melindungi aplikasi tanpa pelayan melibatkan pelbagai langkah. Pertama, anda harus mengikuti prinsip kebenaran paling sedikit. Ini bermakna anda hanya perlu memberikan kebenaran yang diperlukan untuk fungsi anda. Kedua, anda harus menyulitkan data sensitif pada rehat dan semasa penghantaran. Ketiga, anda harus mengemas kini kebergantungan anda secara teratur untuk mengelakkan kelemahan yang diketahui. Akhirnya, anda harus memantau permohonan anda untuk sebarang aktiviti yang tidak normal. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Bagaimana untuk menguji aplikasi tanpa pelayan saya secara tempatan? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Anda boleh menggunakan alat seperti Offline Serverless untuk menguji aplikasi tanpa pelayan tempatan. Alat ini memancarkan AWS Lambda dan API Gateway pada mesin di premis anda, yang membolehkan anda menguji aplikasi tanpa pelayan tanpa menggunakannya. Anda juga boleh menggunakan rangka kerja ujian unit seperti JEST untuk menguji fungsi individu anda. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> bagaimana memantau aplikasi tanpa pelayan saya? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Pelbagai alat boleh digunakan untuk memantau aplikasi tanpa pelayan. AWS menyediakan beberapa alat pemantauan seperti CloudWatch dan X-ray.CloudWatch menyediakan anda dengan data dan pandangan yang boleh diambil tindakan untuk memantau aplikasi anda, memahami dan bertindak balas terhadap perubahan prestasi sistem, mengoptimumkan penggunaan sumber, dan mendapatkan pandangan bersatu mengenai status operasi. X-ray membantu pemaju menganalisis dan menyahpepijat aplikasi yang diedarkan pengeluaran, seperti yang dibina menggunakan seni bina microservice. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Bagaimana menangani kesilapan dalam aplikasi tanpa pelayan? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Anda boleh menggunakan blok percubaan dalam kod anda untuk mengendalikan kesilapan dalam aplikasi tanpa pelayan. Anda juga boleh menggunakan fungsi middleware untuk mengendalikan kesilapan. Di samping itu, AWS Lambda secara automatik mencuba fungsi Lambda yang gagal dua kali, dan anda boleh mengkonfigurasi semula semula. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Bagaimana untuk mengoptimumkan prestasi aplikasi tanpa pelayan? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Mengoptimumkan prestasi aplikasi tanpa pelayan melibatkan pelbagai langkah. Pertama, anda harus memilih saiz memori yang sesuai untuk fungsi anda. Kedua, anda harus meminimumkan saiz pakej penempatan untuk mengurangkan masa boot sejuk. Ketiga, anda harus menggunakan kolam sambungan untuk menggunakan semula sambungan pangkalan data. Akhirnya, anda harus menggunakan cache untuk mengurangkan bilangan panggilan pangkalan data. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Bolehkah saya menggunakan Atlas MongoDB dengan aplikasi tanpa pelayan? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Ya, anda boleh menggunakan Atlas MongoDB dengan aplikasi tanpa pelayan. MongoDB Atlas adalah pangkalan data awan yang diuruskan sepenuhnya yang dibangunkan oleh orang yang sama yang membina MongoDB. Ia menyediakan cara mudah untuk menggunakan, mengendalikan dan skala MongoDB di awan pilihan anda. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Bagaimana untuk memindahkan aplikasi Express saya yang sedia ada kepada seni bina tanpa pelayan? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> memindahkan aplikasi ekspres sedia ada kepada seni bina tanpa pelayan melibatkan pelbagai langkah. Pertama, anda harus refactor permohonan anda ke dalam fungsi yang lebih kecil, tanpa stat. Kedua, anda harus menggantikan mana -mana middleware yang tidak serasi dengan seni bina tanpa pelayan. Akhirnya, anda harus menguji aplikasi anda dengan teliti untuk memastikan ia berfungsi dengan baik dalam persekitaran tanpa pelayan. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p></style></code>

Atas ialah kandungan terperinci Panduan untuk Penyebaran Tanpa Pelayan dengan Express dan MongoDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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