インターネットの継続的な発展に伴い、顧客の予約や業務管理を容易にするためにオンライン予約システムを使用する企業が増えています。このような状況の中、Node.jsを利用してオンライン予約機能を実装するWebプロジェクトが徐々に話題になっています。
この記事では、Node.js を使用して Web ベースのオンライン予約システムを開発する方法を簡単に紹介し、いくつかのコード例を示します。独自のオンライン予約システムの作成を始める前に、次のことができることを期待しています。プロセスを理解するのに役立ちます。
このような Web プロジェクトを開発する前に、慎重な要件分析を行う必要があります。この Web プロジェクトで実装する必要があるいくつかの必要な機能と機能を次に示します。
この例では、MySQL データベースを使用して予約情報を保存します。次の列を含む「Appointments」というテーブルを作成する必要があります:
次は、次のようなものです。 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) );
まず、ローカル コンピューターに Node.js をインストールする必要があります。ここで、「AppointmentSystem」という名前の Node.js アプリケーションを作成します。
「AppointmentSystem」という名前のフォルダーを作成し、そのフォルダー内に「app.js」という名前のファイルを作成します。このファイルは Node.js アプリケーションのメイン ファイルとなり、すべてのコードが含まれます。
次の手順に従って、必要なサードパーティ Node.js モジュールをインストールします。
npm init
npm install express ejs nodemailer mysql body-parser express-session --save
まず、インストールしたすべてのモジュールをメイン ファイル "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'); });
サーバーを起動するには、コマンド プロンプトまたはターミナルでプログラム フォルダーに移動し、次のコマンドを実行します。
node app.js
ここで、Web ブラウザで「localhost:3000」を開いて、オンライン予約システムを使用します。
以上がNode.jsを使ってオンライン予約機能を実装するWebプロジェクトの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。