ユーザーが一度だけいいねできる機能をnodejsで実装

王林
リリース: 2023-05-12 10:53:36
オリジナル
630 人が閲覧しました

ユーザーがより適切に参加して対話できるようにするために、多くの Web サイトでは、ユーザーが興味のあるコンテンツと対話できるように、「いいね!」やコメントなどの機能が追加されます。しかし、制限がないと無制限にいいねをすることができてしまい、いいねの意味がなくなってしまいますし、無用なトラブルが発生することもあります。したがって、ユーザーを 1 つのいいねに制限する機能を実装する方法が必要です。

この記事では、Node.jsを使用して、ユーザーに1回だけいいねを許可する機能を実装します。始める前に、使用する必要があるテクニックとツールを見てみましょう。

Node.js は、高性能 Web アプリケーションを開発するための Chrome V8 エンジンに基づく JavaScript ランタイム環境です。サーバーサイド JavaScript コードを作成するためのインフラストラクチャとライブラリを提供し、効率的な Web アプリケーションを簡単に作成できるようにします。

Express は人気のある Node.js Web フレームワークで、ルーティング、エラー処理、HTTP リクエストに基づくビューのレンダリングなどの一連の機能を提供し、スケーラブルな Web アプリケーションを迅速に構築できます。

MongoDB は、ドキュメント ストレージ モデルを使用し、さまざまなデータ型をサポートできる非リレーショナル データベース管理システムです。これは、複雑なデータの保存と管理に使用できる、高性能でスケーラブルなデータベースです。

さあ、関数の実装を始めましょう。まず、次のコマンドを使用して、新しい Express アプリケーションを構築する必要があります:

mkdir nodejs-like-demo
cd nodejs-like-demo
npm init  // 创建 package.json 文件
npm install express --save
ログイン後にコピー

Express のインストールが完了したら、次のコードをアプリケーションに追加してルーティングとプロセッサを設定する必要があります:

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');
});
ログイン後にコピー

このコードは、単純な「Hello, world!」メッセージをユーザーに送信するための単純なルートとハンドラーを作成します。これで、次のコマンドを使用してアプリケーションを起動できるようになります:

node app.js
ログイン後にコピー
ログイン後にコピー

次に、ユーザーなどのデータを保存するデータベースを作成する必要があります。 MongoDB データベースを使用してデータを保存できます。まず、次のコマンドを使用して MongoDB をインストールする必要があります:

brew install mongodb
ログイン後にコピー

次に、データを保存するデータベースを作成する必要があります。次のコマンドを使用してデータベースを作成できます:

mongo
> use nodejs-like-demo
ログイン後にコピー

次に、ユーザー データを保存するために users という名前のコレクションを作成する必要があります:

> db.createCollection('users')
ログイン後にコピー

次に、It という名前のコレクションを作成する必要がありますはいいねのコレクションであり、いいねデータを保存するために使用されます:

> db.createCollection('likes')
ログイン後にコピー

データベースの設定が完了したので、ユーザーのいいねリクエストを処理するルートを作成する必要があります。次のコードを使用して、新しいルート ハンドラーを追加できます。

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');
                }
            });
        }
    });
});
ログイン後にコピー

このコードでは、最初にユーザー ID と投稿 ID を取得し、次に like オブジェクトを作成します。 MongoDB データベースのコレクション オブジェクトを使用していいねコレクションを取得し、ユーザーがすでに投稿に「いいね!」を付けているかどうかを確認します。ユーザーがすでに投稿に「いいね!」を付けている場合は、エラー メッセージを送信します。そうでない場合は、「いいね!」をデータベースに挿入します。

これで必要なコードがすべて完成したので、次のコマンドを使用してアプリケーションを起動し、postman などのツールを通じて新しいエンドポイントに POST リクエストを送信できます。次のコマンドはサーバーに POST リクエストを送信します:

node app.js
ログイン後にコピー
ログイン後にコピー

このようにして、ユーザーが 1 回だけいいねできる機能が完成しました。実際のアプリケーションでは、さらに多くのテクノロジーとツールを使用して、この機能を改善できます。たとえば、JWT を使用してユーザーがログイン ユーザーであるかどうかを確認したり、Redis などのメモリ内キャッシュ システムを使用してデータ アクセスを高速化したりできます。

つまり、Node.js は、高パフォーマンスの Web アプリケーションを迅速に構築し、ユーザーが 1 回しかいいねできないなどの複雑な機能を実装するのに役立つ多くの強力なツールとテクノロジを提供します。これらのツールやテクノロジーを活用するだけで、ユーザーが一度だけ気に入った機能を簡単に実装することができ、ユーザーにより良い体験とインタラクションを提供できます。

以上がユーザーが一度だけいいねできる機能をnodejsで実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!