ホームページ >ウェブフロントエンド >jsチュートリアル >Node.jsを使ってオンライン予約機能を実装するWebプロジェクト

Node.jsを使ってオンライン予約機能を実装するWebプロジェクト

王林
王林オリジナル
2023-11-08 16:33:111569ブラウズ

Node.jsを使ってオンライン予約機能を実装するWebプロジェクト

インターネットの継続的な発展に伴い、顧客の予約や業務管理を容易にするためにオンライン予約システムを使用する企業が増えています。このような状況の中、Node.jsを利用してオンライン予約機能を実装するWebプロジェクトが徐々に話題になっています。

この記事では、Node.js を使用して Web ベースのオンライン予約システムを開発する方法を簡単に紹介し、いくつかのコード例を示します。独自のオンライン予約システムの作成を始める前に、次のことができることを期待しています。プロセスを理解するのに役立ちます。

  1. 要件分析

このような Web プロジェクトを開発する前に、慎重な要件分析を行う必要があります。この Web プロジェクトで実装する必要があるいくつかの必要な機能と機能を次に示します。

  • 顧客は、Web サイトで利用可能な時間とサービスを表示して選択できます。
  • 顧客は適切な時間を選択して、販売者にリクエストを送信できます。
  • 販売者は予約リクエストを表示し、承認または拒否できます。
  • 販売者が予約リクエストを受け入れると、システムは予約情報をデータベースに入力し、確認メールを顧客に送信します。
  • 販売者が予約リクエストを拒否すると、システムは顧客に拒否メールを送信します。
  1. データベース設計

この例では、MySQL データベースを使用して予約情報を保存します。次の列を含む「Appointments」というテーブルを作成する必要があります:

  • ID (一意の識別子)
  • 顧客名
  • 顧客の電子メール
  • サービス タイプ
  • 日付
  • 時刻
  • ステータス (保留中、承認済み、または拒否済み)

次は、次のようなものです。 SQL ステートメントを使用してテーブルを作成します。

CREATE TABLE Appointments (
  ID INT NOT NULL AUTO_INCREMENT,
  CustomerName VARCHAR(50),
  CustomerEmail VARCHAR(50),
  ServiceType VARCHAR(50),
  AppointmentDate DATE,
  AppointmentTime TIME,
  Status ENUM('Pending', 'Accepted', 'Rejected'),
  PRIMARY KEY (ID)
);
  1. Node.js アプリケーションの作成

まず、ローカル コンピューターに Node.js をインストールする必要があります。ここで、「AppointmentSystem」という名前の Node.js アプリケーションを作成します。

「AppointmentSystem」という名前のフォルダーを作成し、そのフォルダー内に「app.js」という名前のファイルを作成します。このファイルは Node.js アプリケーションのメイン ファイルとなり、すべてのコードが含まれます。

次の手順に従って、必要なサードパーティ Node.js モジュールをインストールします。

  1. コマンド プロンプトまたはターミナルを開き、「AppointmentSystem」フォルダーに切り替えます。
  2. 次のコマンドを実行します: npm init
  3. プロンプトの質問にすべてデフォルト値を使用して回答し、「package.json」ファイルの作成を完了します。
  4. 次のモジュールをインストールします:
npm install express ejs nodemailer mysql body-parser express-session --save
  • express: これは、Web アプリケーションを構築するための一般的な Node.js フレームワークです。
  • ejs: HTML ページを動的に生成できるテンプレート エンジンです。
  • nodemailer: これは、顧客に電子メールを送信するための Node.js モジュールです。
  • mysql: これは、MySQL データベースへの接続に使用される Node.js モジュールです。
  • body-parser: これは、HTTP リクエストの本文を解析するための Node.js ミドルウェアです。
  • express-session: これは、セッションを処理するための Node.js ミドルウェアです。
  1. コードの実装

まず、インストールしたすべてのモジュールをメイン ファイル "app.js" に導入する必要があります:

const express = require('express');
const ejs = require('ejs');
const nodemailer = require('nodemailer');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const session = require('express-session');

const app = express();

次に、アプリケーションを構成する必要があります。私たちのアプリケーションはデフォルトの「views」フォルダーと「public」フォルダーを使用するため、それらを構成する必要はありません。

app.set('view engine', 'ejs');
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(session({
  secret: 'mysecretkey',
  resave: true,
  saveUninitialized: true
}));

次に、MySQL データベースに接続する必要があります。 「createConnection」関数を使用してデータベース接続を作成し、オブジェクトを使用してクエリを実行します。

const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'appointments'
});

さて、ルーティング関数を定義しましょう。予約フォームを取得するルートと運送状を送信するルートの 2 つのルートを定義します。

app.get('/', (req, res) => {
  res.render('index');
});

app.post('/appointment', (req, res) => {
  const {customerName, customerEmail, serviceType, appointmentDate, appointmentTime} = req.body;

  pool.query('INSERT INTO Appointments SET ?', {
    CustomerName: customerName,
    CustomerEmail: customerEmail,
    ServiceType: serviceType,
    AppointmentDate: appointmentDate,
    AppointmentTime: appointmentTime,
    Status: 'Pending'
  }, (error, results) => {
    if (error) {
      throw error;
    } else {
      const transporter = nodemailer.createTransport({
        service: 'gmail',
        auth: {
          user: 'youremail@gmail.com',
          pass: 'yourpassword'
        }
      });
      
      const mailOptions = {
        from: 'youremail@gmail.com',
        to: customerEmail,
        subject: 'Your Appointment Request',
        text: `Dear ${customerName}, 

Thank you for requesting an appointment with our company. We have received your request and will get back to you as soon as possible. 

Best regards, 
The Company`
      };
      
      transporter.sendMail(mailOptions, (error, info) => {
        if (error) {
          throw error;
        } else {
          console.log(`Email sent: ${info.response}`);
        }
      });
      
      res.render('confirmation', {
        customerName,
        customerEmail,
        serviceType,
        appointmentDate,
        appointmentTime
      });
    }
  });
});

上記のコード スニペットでは、まず「pool.query」関数を使用して新しい予約レコードを MySQL データベースに挿入し、次に Nodemailer メール トランスミッターを作成して顧客に確認メールを送信します。最後に、顧客の詳細を確認ページに表示して、顧客が予約の詳細を確認できるようにします。

最後に、「app.listen」関数を使用してアプリケーションを起動し、リスニング ポートを提供する必要があります。

app.listen(3000, () => {
  console.log('Server started on port 3000');
});
  1. アプリケーションの起動

サーバーを起動するには、コマンド プロンプトまたはターミナルでプログラム フォルダーに移動し、次のコマンドを実行します。

node app.js

ここで、Web ブラウザで「localhost:3000」を開いて、オンライン予約システムを使用します。

以上がNode.jsを使ってオンライン予約機能を実装するWebプロジェクトの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。