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

tonavigatereAct'somplexEcosystemively、理解を理解し、認識していることを認識していることを認識しているandweakness、およびIntegreatemtoemtoemtoemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemotereconceptate、その後、勾配内で測定する

RactuseSeSeSeSeSeSeSeSpiffictifideidifiedItemsbyprovidingastableidentitytoeeedelement.1)keysallowReactTotTotTotTotTotTotTotTotTotTotTotTotTotTotTotRACKESOUTRE-RENDERINGTHEENTERELIST.2)chookiniqueandstablekeys、avolididingArrayIndices.3)reforceAsificlySificlySiflovedobrovesiondanc

KeysinReactarecrucialforoptimizingTherenderingProcessandDynamicListseffective.tospotandfixkey-relatedissues:1)adduniquekeystolistiTemstoavoidsissusisus、2)useuniqueidideididifiersfromdateadceSofofordiceys、3)

Reactの一元配置データバインディングにより、データが親コンポーネントから子コンポーネントに流れることが保証されます。 1)データは単一に流れ、親コンポーネントの状態の変化は子コンポーネントに渡すことができますが、子コンポーネントは親コンポーネントの状態に直接影響することはできません。 2)この方法により、データフローの予測可能性が向上し、デバッグとテストが簡素化されます。 3)制御されたコンポーネントとコンテキストを使用することにより、一方向のデータストリームを維持しながら、ユーザーの相互作用とコンポーネント間通信を処理できます。

keysinReactarecrucialforeffiencedomupdatessandRecOnciliation.1)選択可能でユニークな、そして類似のフルキーなど、Itemids.2)fornestedLists、useuniquekeysateachlevel.3)

useState()uscrucialforoptimizingRectperformanceduetuitsoitsimpactonre-rendersandupdates.tooptimize:1)useusecallbacktomoize funtionsandpreventunnederireRenders.2)

コンテキストとユーザーを使用して、大規模なReactアプリケーションで州の管理を簡素化できるため、状態を共有します。 1)プロップドリルを減らす、2)より明確なコード、3)グローバルな状態を管理しやすい。ただし、パフォーマンスのオーバーヘッドと複雑さのデバッグに注意してください。コンテキストと最適化技術の合理的な使用は、アプリケーションの効率と保守性を向上させることができます。

誤ったキーを使用すると、Reactアプリケーションでパフォーマンスの問題や予期しない動作を引き起こす可能性があります。 1)キーはリスト項目の一意の識別子であり、Virtual Domを効率的にReactの更新を支援します。 2)同じまたは非ユニークなキーを使用すると、リスト項目が再注文され、コンポーネント状態が失われます。 3)キーとして安定した一意の識別子を使用すると、パフォーマンスを最適化し、完全な再レンダリングを回避できます。 4)ESLINTなどのツールを使用して、キーの正しさを確認します。キーを適切に使用すると、効率的で信頼性の高い反応アプリケーションが保証されます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ホットトピック









