Node.js でドリフトボトルを実現
ドリフトボトルは、流れに乗って遠くに漂ってしまう伝統的でロマンチックなものです。デジタル時代では、技術的な手段を通じてこの種のおもちゃをシミュレートできます。この記事では、Node.jsを使って簡単なドリフトボトルアプリケーションを実装する方法を紹介します。
ステップ 1: 基本環境を構築する
まず、Node.js がコンピューターにインストールされていることを確認する必要があります。インストールが完了したら、コマンド ラインに次のコマンドを入力して、Node.js が正常にインストールされたかどうかを確認します。
node -v
インストールが成功した場合は、バージョン番号を出力します。
次に、Express フレームワークや MongoDB データベースなど、必要な依存ライブラリをいくつかインストールする必要があります。コマンド ラインで次のコマンドを使用してインストールします。
npm install express mongodb --save
ここでは npm コマンドを使用して依存ライブラリをインストールします。--save
パラメータは、ライブラリの名前とバージョン番号を示します。依存ライブラリはプロジェクト package.json
ファイルに記録され、チームのコラボレーションとコードのメンテナンスが容易になります。
ステップ 2: バックグラウンド ロジックの実装
次に、ルーティングやデータ操作などのバックグラウンド ロジックを作成する必要があります。プロジェクトのルート ディレクトリに新しい app.js
ファイルを作成し、そのファイルに次の内容を入力します。
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}`); });
このコードは、ポート 3000 でリッスンする基本的な Express アプリケーションを実装します。 bottle
という名前の MongoDB データベースに接続します。ルート ルート /
も定義されており、Hello, world!
を返します。
次に、3 つのルートを実装する必要があります:
/throw
: ドリフト ボトルをドロップするために使用されます。 /pick
: ドリフトボトルを見つけるために使用されます。 /delete/:id
: ドリフトボトルの削除に使用されます。 まず最初のルートを実装する方法を見てみましょう。次のコードを 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(); }); }); });
このコードは、ドリフト ボトルをドロップするために使用されます。最初にクエリ パラメーターのユーザー名とコンテンツを取得し、次にアセンブルします。それを JSON オブジェクトに変換します。次に、MongoDB データベースに接続し、オブジェクトを bottles
コレクションに挿入します。挿入が成功すると、Throw bottle success
が返されます。
次に、2 番目のルートを実装する必要があります。次のコードを 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(); }); }); }); });
このコードは、ドリフト ボトルを検索するために使用されます。まず、クエリ パラメーターでユーザー名を取得し、次に MongoDB データベースに接続し、bottles
コレクションでユーザー名に一致する漂流ボトルを見つけます。ドリフト ボトルが見つかった場合は、データベースから削除し、結果をクライアントに返します。
最後に、3 番目のルートを実装する必要があります。次のコードを 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(); }); }); });
このコードは、ドリフト ボトルを削除するために使用されます。まずルーティング パラメーターでドリフト ボトル ID を取得し、次に MongoDB データベースに接続し、bottles
コレクション内のドリフト ボトルを削除します。削除が成功すると、ボトル削除成功
が返されます。
ステップ 3: フロントエンド インタラクションの実装
これで、完全なバックグラウンド ロジックが実装されました。次に、いくつかのフロントエンド対話を実装する必要があります。プロジェクトのルート ディレクトリに新しい public
フォルダーを作成し、その中に index.html
ファイルを作成し、次のコードを入力します。
<!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>
This codeシンプルなユーザー インターフェイスは 2 つのフォームと 1 つのリストで構成されます。このうちフォームはドリフトボトルの投稿とドリフトボトルの検索に使用され、リストは見つかったドリフトボトルを表示するために使用されます。
次に、次のコードを app.js
ファイルに追加して、静的ファイル ディレクトリを public
に設定します。コマンド 次のコマンドを行に入力してアプリケーションを開始します。
app.use(express.static('public'));
http://localhost:3000
にアクセスして、ドリフト ボトル アプリケーションを使用します。 概要
この記事では、Node.js を使用してドリフト ボトル アプリケーションを実装する方法を紹介します。バックエンド ロジックとフロントエンド インタラクションを実装することで、基本的に使用可能なドリフト ボトル システムを確立しました。もちろん、これは非常に単純なドリフト ボトル アプリケーションにすぎず、データ検証、例外処理、セキュリティなど、改善および最適化する必要がある領域が数多くあります。ただし、このアプリケーションは、Web アプリケーションにおける Node.js の強力な機能と洗練されたプログラミング方法を実証するには十分です。この記事が Node.js を学習したい読者に役立つことを願っています。
以上がNodejs はドリフトボトルを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。