Rumah hujung hadapan web Soal Jawab bahagian hadapan Nodejs melaksanakan botol hanyut

Nodejs melaksanakan botol hanyut

May 13, 2023 pm 10:39 PM

Node.js menyedari botol hanyut

Botol hanyut adalah perkara tradisional dan romantis yang boleh hanyut dengan arus dan hanyut jauh. Dalam era digital, kita boleh mensimulasikan mainan jenis ini melalui cara teknikal. Artikel ini akan memperkenalkan cara menggunakan Node.js untuk melaksanakan aplikasi botol drift yang mudah.

Langkah 1: Bina persekitaran asas

Pertama, kita perlu memastikan Node.js dipasang pada komputer. Selepas pemasangan selesai, masukkan arahan berikut pada baris arahan untuk menyemak sama ada Node.js berjaya dipasang:

node -v
Salin selepas log masuk

Jika pemasangan berjaya, keluarkan nombor versi.

Seterusnya, kita perlu memasang beberapa perpustakaan bergantung yang diperlukan, termasuk rangka kerja Express dan pangkalan data MongoDB. Gunakan arahan berikut pada baris arahan untuk memasang:

npm install express mongodb --save
Salin selepas log masuk

Arahan npm digunakan di sini untuk memasang perpustakaan bergantung, di mana parameter --save menunjukkan bahawa nama dan nombor versi perpustakaan bergantung akan direkodkan dalam fail package.json projek, untuk memudahkan kerjasama pasukan dan penyelenggaraan kod.

Langkah 2: Laksanakan logik latar belakang

Seterusnya, kita perlu menulis beberapa logik latar belakang, termasuk penghalaan dan operasi data. Cipta fail app.js baharu dalam direktori akar projek dan masukkan kandungan berikut di dalamnya:

const express = require('express');
const mongodb = require('mongodb').MongoClient;

const app = express();
const port = process.env.PORT || 3000;
const dbUrl = 'mongodb://localhost:27017/bottle';

app.get('/', function(req, res) {
  res.send('Hello, world!');
});

app.listen(port, function() {
  console.log(`Server is listening on port ${port}`);
});
Salin selepas log masuk

Kod ini melaksanakan aplikasi Express asas, mendengar pada port 3000 dan menyambung ke pelayan bernama bottle Pangkalan data MongoDB. Laluan akar / juga ditakrifkan, mengembalikan Hello, world!.

Seterusnya, kita perlu melaksanakan tiga laluan:

  1. /throw: untuk meletakkan botol hanyut.
  2. /pick: Digunakan untuk mencari botol hanyut.
  3. /delete/:id: digunakan untuk memadam botol hanyut.

Mari kita lihat dahulu cara melaksanakan laluan pertama. Tambahkan kod berikut dalam fail app.js:

app.get('/throw', function(req, res) {
  const user = req.query.user;
  const content = req.query.content;
  const bottle = {user: user, content: content};
  mongodb.connect(dbUrl, function(err, client) {
    if (err) {
      return console.log('Failed to connect to database');
    }
    const db = client.db('bottle');
    db.collection('bottles').insertOne(bottle, function(err, result) {
      if (err) {
        return console.log('Failed to insert bottle');
      }
      res.send('Throw bottle success');
      client.close();
    });
  });
});
Salin selepas log masuk

Kod ini digunakan untuk menggugurkan botol drift itu mula-mula mendapatkan nama pengguna dan kandungan dalam parameter pertanyaan, dan kemudian memasangnya ke dalam objek JSON. Kemudian sambung ke pangkalan data MongoDB dan masukkan objek dalam koleksi bottles. Jika sisipan berjaya, kembalikan Throw bottle success.

Seterusnya, kita perlu melaksanakan laluan kedua. Tambahkan kod berikut dalam fail app.js:

app.get('/pick', function(req, res) {
  const user = req.query.user;
  mongodb.connect(dbUrl, function(err, client) {
    if (err) {
      return console.log('Failed to connect to database');
    }
    const db = client.db('bottle');
    db.collection('bottles').findOne({user: user}, function(err, result) {
      if (err) {
        return console.log('Failed to find bottle');
      }
      if (!result) {
        return res.send('No bottle found');
      }
      const bottle = {user: result.user, content: result.content};
      db.collection('bottles').deleteOne({_id: result._id}, function(err, result) {
        if (err) {
          return console.log('Failed to delete bottle');
        }
        res.send(bottle);
        client.close();
      });
    });
  });
});
Salin selepas log masuk

Kod ini digunakan untuk mencari botol hanyut. Mula-mula dapatkan nama pengguna dalam parameter pertanyaan, kemudian sambungkan ke pangkalan data MongoDB, dan cari botol drift yang sepadan dengan nama pengguna dalam koleksi bottles. Jika botol drift ditemui, padamkannya daripada pangkalan data dan kembalikan hasilnya kepada pelanggan.

Akhir sekali, kita perlu melaksanakan laluan ketiga. Tambahkan kod berikut dalam fail app.js:

app.get('/delete/:id', function(req, res) {
  const id = req.params.id;
  mongodb.connect(dbUrl, function(err, client) {
    if (err) {
      return console.log('Failed to connect to database');
    }
    const db = client.db('bottle');
    db.collection('bottles').deleteOne({_id: mongodb.ObjectID(id)}, function(err, result) {
      if (err) {
        return console.log('Failed to delete bottle');
      }
      res.send('Delete bottle success');
      client.close();
    });
  });
});
Salin selepas log masuk

Kod ini digunakan untuk memadamkan botol drift. Mula-mula dapatkan ID botol drift dalam parameter penghalaan, kemudian sambungkan ke pangkalan data MongoDB dan padamkan botol drift dalam koleksi bottles. Jika pemadaman berjaya, kembalikan Delete bottle success.

Langkah 3: Laksanakan interaksi bahagian hadapan

Kini, kami telah melaksanakan logik latar belakang yang lengkap. Seterusnya, kita perlu melaksanakan beberapa interaksi bahagian hadapan. Cipta folder public baharu dalam direktori akar projek, buat fail index.html di dalamnya, dan kemudian masukkan kod berikut:

<!DOCTYPE html>
<html>
<head>
  <title>Drifting Bottle</title>
  <meta charset="utf-8">
</head>
<body>
  <form id="throwForm">
    <input type="text" name="user" placeholder="Your name"><br>
    <textarea name="content" placeholder="Message"></textarea><br>
    <input type="submit" value="Throw">
  </form>
  <hr>
  <form id="pickForm">
    <input type="text" name="user" placeholder="Your name"><br>
    <input type="submit" value="Pick">
  </form>
  <hr>
  <ul id="bottleList"></ul>
  <script src="https://code.jquery.com/jquery-3.6.0.slim.min.js"></script>
  <script>
    $(function() {
      $('#throwForm').submit(function(event) {
        event.preventDefault();
        const form = $(this);
        $.get('/throw', form.serialize(), function(data) {
          alert(data);
        });
      });
      $('#pickForm').submit(function(event) {
        event.preventDefault();
        const form = $(this);
        $.get('/pick', form.serialize(), function(data) {
          if (typeof(data) === 'string') {
            alert(data);
          } else {
            $('#bottleList').append(`<li>${data.user}: ${data.content}</li>`);
          }
        });
      });
      $('#bottleList').on('click', 'li', function() {
        if (confirm('Are you sure to delete this bottle?')) {
          const id = $(this).attr('data-id');
          $.get(`/delete/${id}`, function(data) {
            alert(data);
            $(this).remove();
          }.bind(this));
        }
      });
    });
  </script>
</body>
</html>
Salin selepas log masuk

Kod ini melaksanakan antara muka pengguna yang mudah, termasuk dua Borang dan satu senarai. Antaranya, borang digunakan untuk menghantar botol drift dan mencari botol drift, dan senarai digunakan untuk memaparkan botol drift yang ditemui.

Seterusnya, tambah kod berikut dalam fail app.js untuk menetapkan direktori fail statik kepada public:

app.use(express.static('public'));
Salin selepas log masuk

Akhir sekali, masukkan arahan berikut dalam baris arahan untuk memulakan aplikasi :

node app.js
Salin selepas log masuk

Lawatihttp://localhost:3000 untuk menggunakan Apl Botol.

Ringkasan

Artikel ini memperkenalkan cara menggunakan Node.js untuk melaksanakan aplikasi botol drift. Dengan melaksanakan logik belakang dan interaksi hadapan, kami mewujudkan sistem botol hanyut yang pada asasnya boleh digunakan. Sudah tentu, ini hanyalah aplikasi botol hanyut yang sangat mudah, dan terdapat banyak bidang yang perlu diperbaiki dan dioptimumkan, seperti pengesahan data, pengendalian pengecualian, keselamatan, dll. Tetapi aplikasi ini sudah cukup untuk menunjukkan keupayaan berkuasa dan kaedah pengaturcaraan elegan Node.js dalam aplikasi web Saya harap artikel ini akan membantu pembaca yang ingin mempelajari Node.js.

Atas ialah kandungan terperinci Nodejs melaksanakan botol hanyut. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Apa itu useeffect? Bagaimana anda menggunakannya untuk melakukan kesan sampingan? Apa itu useeffect? Bagaimana anda menggunakannya untuk melakukan kesan sampingan? Mar 19, 2025 pm 03:58 PM

Artikel ini membincangkan useeffect dalam React, cangkuk untuk menguruskan kesan sampingan seperti pengambilan data dan manipulasi DOM dalam komponen berfungsi. Ia menerangkan penggunaan, kesan sampingan yang biasa, dan pembersihan untuk mencegah masalah seperti kebocoran memori.

Terangkan konsep pemuatan malas. Terangkan konsep pemuatan malas. Mar 13, 2025 pm 07:47 PM

Lazy memuatkan kelewatan memuatkan kandungan sehingga diperlukan, meningkatkan prestasi web dan pengalaman pengguna dengan mengurangkan masa beban awal dan beban pelayan.

Apakah fungsi pesanan yang lebih tinggi dalam JavaScript, dan bagaimana mereka boleh digunakan untuk menulis lebih banyak kod ringkas dan boleh diguna semula? Apakah fungsi pesanan yang lebih tinggi dalam JavaScript, dan bagaimana mereka boleh digunakan untuk menulis lebih banyak kod ringkas dan boleh diguna semula? Mar 18, 2025 pm 01:44 PM

Fungsi pesanan yang lebih tinggi dalam JavaScript meningkatkan ketabahan kod, kebolehgunaan semula, modulariti, dan prestasi melalui abstraksi, corak umum, dan teknik pengoptimuman.

Bagaimanakah kari bekerja di JavaScript, dan apakah faedahnya? Bagaimanakah kari bekerja di JavaScript, dan apakah faedahnya? Mar 18, 2025 pm 01:45 PM

Artikel ini membincangkan kari dalam JavaScript, teknik yang mengubah fungsi multi-argumen ke dalam urutan fungsi argumen tunggal. Ia meneroka pelaksanaan kari, faedah seperti aplikasi separa, dan kegunaan praktikal, meningkatkan kod baca

Bagaimanakah algoritma Rekonsiliasi React berfungsi? Bagaimanakah algoritma Rekonsiliasi React berfungsi? Mar 18, 2025 pm 01:58 PM

Artikel ini menerangkan algoritma perdamaian React, yang dengan cekap mengemas kini DOM dengan membandingkan pokok DOM maya. Ia membincangkan manfaat prestasi, teknik pengoptimuman, dan kesan terhadap pengalaman pengguna. Kira -kira: 159

Apakah useContext? Bagaimana anda menggunakannya untuk berkongsi keadaan antara komponen? Apakah useContext? Bagaimana anda menggunakannya untuk berkongsi keadaan antara komponen? Mar 19, 2025 pm 03:59 PM

Artikel ini menerangkan USEContext dalam React, yang memudahkan pengurusan negara dengan mengelakkan penggerudian prop. Ia membincangkan faedah seperti keadaan terpusat dan penambahbaikan prestasi melalui pengurangan semula yang dikurangkan.

Bagaimana anda mengelakkan tingkah laku lalai di pengendali acara? Bagaimana anda mengelakkan tingkah laku lalai di pengendali acara? Mar 19, 2025 pm 04:10 PM

Artikel membincangkan menghalang tingkah laku lalai dalam pengendali acara menggunakan kaedah pencegahanDefault (), faedahnya seperti pengalaman pengguna yang dipertingkatkan, dan isu -isu yang berpotensi seperti kebimbangan aksesibiliti.

Apakah kelebihan dan kekurangan komponen terkawal dan tidak terkawal? Apakah kelebihan dan kekurangan komponen terkawal dan tidak terkawal? Mar 19, 2025 pm 04:16 PM

Artikel ini membincangkan kelebihan dan kekurangan komponen terkawal dan tidak terkawal dalam React, yang memberi tumpuan kepada aspek seperti ramalan, prestasi, dan kes penggunaan. Ia menasihatkan faktor -faktor yang perlu dipertimbangkan ketika memilih di antara mereka.

See all articles