Rumah  >  Artikel  >  hujung hadapan web  >  nodejs melaksanakan fungsi yang pengguna hanya boleh suka sekali

nodejs melaksanakan fungsi yang pengguna hanya boleh suka sekali

王林
王林asal
2023-05-12 10:53:36633semak imbas

Untuk membolehkan pengguna mengambil bahagian dan berinteraksi dengan lebih baik, banyak laman web akan menambah fungsi seperti suka dan komen, supaya pengguna boleh berinteraksi dengan kandungan yang mereka minati. Walau bagaimanapun, jika tiada sekatan, pengguna boleh suka tanpa had, yang akan kehilangan makna suka dan juga menyebabkan masalah yang tidak perlu. Oleh itu, kami memerlukan satu cara untuk melaksanakan fungsi mengehadkan pengguna kepada satu suka.

Dalam artikel ini, kami akan menggunakan Node.js untuk melaksanakan ciri yang hanya membenarkan pengguna menyukai sekali. Sebelum kita bermula, mari kita lihat teknik dan alat yang perlu kita gunakan.

Node.js ialah persekitaran masa jalan JavaScript berdasarkan enjin Chrome V8 untuk membangunkan aplikasi web berprestasi tinggi. Ia menyediakan infrastruktur dan perpustakaan untuk menulis kod JavaScript sisi pelayan, menjadikannya mudah untuk menulis aplikasi web yang cekap.

Express ialah rangka kerja web Node.js yang popular Ia menyediakan satu siri fungsi seperti penghalaan, pengendalian ralat dan paparan paparan berdasarkan permintaan HTTP, membolehkan kami membina aplikasi web berskala dengan cepat.

MongoDB ialah sistem pengurusan pangkalan data bukan perhubungan yang menggunakan model storan dokumen dan boleh menyokong pelbagai jenis data yang berbeza. Ia adalah pangkalan data berprestasi tinggi, boleh skala yang boleh digunakan untuk mengendalikan penyimpanan dan pengurusan data yang kompleks.

Sekarang mari kita mula melaksanakan fungsi kita. Mula-mula, kita perlu membina aplikasi Express baharu, menggunakan arahan berikut:

mkdir nodejs-like-demo
cd nodejs-like-demo
npm init  // 创建 package.json 文件
npm install express --save

Selepas melengkapkan pemasangan Express, kita perlu menambah kod berikut pada aplikasi untuk menyediakan penghalaan dan pengendali:

const express = require('express');
const app = express();

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

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

Kod ini akan mencipta laluan dan pengendali yang mudah untuk menghantar "Helo, dunia" yang ringkas kepada pengguna. Sekarang kita boleh mulakan aplikasi menggunakan arahan berikut:

node app.js

Seterusnya, kita perlu mencipta pangkalan data untuk menyimpan data pengguna dan suka kita. Kita boleh menggunakan pangkalan data MongoDB untuk menyimpan data. Mula-mula, kita perlu memasang MongoDB menggunakan arahan berikut:

brew install mongodb

Kemudian, kita perlu mencipta pangkalan data untuk menyimpan data kita. Kita boleh menggunakan arahan berikut untuk mencipta pangkalan data:

mongo
> use nodejs-like-demo

Seterusnya, kita perlu mencipta koleksi bernama pengguna untuk menyimpan data pengguna:

> db.createCollection('users')

Kemudian, kita perlu mencipta koleksi bernama It ialah koleksi suka, digunakan untuk menyimpan data suka:

> db.createCollection('likes')

Kini setelah kami melengkapkan tetapan pangkalan data, kami perlu mencipta laluan untuk mengendalikan permintaan suka pengguna. Kita boleh menambah pengendali laluan baharu menggunakan kod berikut:

app.post('/like', (req, res) => {
    const userId = req.body.userId;
    const postId = req.body.postId;
    const like = {
        userId: userId,
        postId: postId
    };
    const likes = db.collection('likes');
    const filter = { userId: userId, postId: postId };
    likes.findOne(filter, (err, result) => {
        if (result) {
            res.status(400).send('You already liked this post');
        } else {
            likes.insertOne(like, (err, result) => {
                if (err) {
                    console.log(err);
                    res.status(500).send('Internal Server Error');
                } else {
                    res.send('Success');
                }
            });
        }
    });
});

Dalam kod ini, kami mula-mula mendapatkan ID pengguna dan ID pos, kemudian mencipta objek seperti. Kami menggunakan objek koleksi pangkalan data MongoDB untuk mendapatkan koleksi suka kami dan menyemak sama ada pengguna telah menyukai siaran tersebut. Jika pengguna telah menyukai siaran itu, hantarkan mesej ralat, jika tidak, masukkan seperti itu ke dalam pangkalan data.

Sekarang kami telah melengkapkan semua kod yang diperlukan, kami boleh memulakan aplikasi menggunakan arahan berikut dan menghantar permintaan POST ke titik akhir baharu kami melalui alat seperti posmen:

node app.js

Sekarang, kami boleh menggunakan Perintah berikut menghantar permintaan POST ke pelayan:

curl --header "Content-Type: application/json" 
  --request POST 
  --data '{"userId":"1", "postId":"1"}' 
  http://localhost:3000/like

Dengan cara ini, kami telah menyelesaikan fungsi yang pengguna hanya boleh suka sekali. Dalam aplikasi sebenar, kami boleh menggunakan lebih banyak teknologi dan alatan untuk menambah baik fungsi ini. Sebagai contoh, kita boleh menggunakan JWT untuk mengesahkan sama ada pengguna adalah pengguna log masuk, atau menggunakan sistem caching dalam memori seperti Redis untuk mempercepatkan akses data, dsb.

Ringkasnya, Node.js menyediakan banyak alatan dan teknologi berkuasa yang boleh membantu kami membina aplikasi web berprestasi tinggi dengan cepat dan melaksanakan fungsi yang kompleks seperti pengguna yang hanya boleh menyukai sekali sahaja. Hanya dengan menggunakan alat dan teknologi ini, kami boleh melaksanakan fungsi dengan mudah yang pengguna hanya boleh suka sekali, memberikan pengguna pengalaman dan interaksi yang lebih baik.

Atas ialah kandungan terperinci nodejs melaksanakan fungsi yang pengguna hanya boleh suka sekali. 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