Nodejs はドリフトボトルを実装します

PHPz
リリース: 2023-05-13 22:39:37
オリジナル
472 人が閲覧しました

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 つのルートを実装する必要があります:

  1. /throw: ドリフト ボトルをドロップするために使用されます。
  2. /pick: ドリフトボトルを見つけるために使用されます。
  3. /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 サイトの他の関連記事を参照してください。

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