ユーザーがより適切に参加して対話できるようにするために、多くの 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 サイトの他の関連記事を参照してください。