日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

隨著互聯網的不斷發展,越來越多的商家開始使用在線預約系統來方便客戶預約和管理業務。在這種情況下,利用Node.js實現在線預約功能的Web項目正逐漸成為一個熱門的話題。

在這篇文章中,我們將簡單介紹一下如何使用Node.js開發一個基于Web的在線預約系統,并提供一些代碼示例,在您開始制作自己的在線預約系統之前,其希望能夠幫助您了解這個過程。

    需求分析

在開發這樣一個Web項目之前,我們需要進行仔細的需求分析。以下是一些必要的功能和特性,在這個Web項目中需要實現的:

客戶能夠在網站上查看和選擇可用時間和服務項目。客戶可以選擇任何一個合適的時間,并向商家發送請求。商家可以查看預約請求,并接受或拒絕它們。當商家接受預約請求時,系統會把預約信息錄入數據庫并發送確認電子郵件給客戶。當商家拒絕預約請求時,系統會向客戶發送拒絕電子郵件。

    數據庫設計

在本例中,我們將使用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)
);

登錄后復制

    創建Node.js應用程序

首先,我們需要在本地計算機上安裝Node.js。現在,我們將創建一個名為“AppointmentSystem”的Node.js應用程序。

創建一個名為“AppointmentSystem”的文件夾,并在文件夾中創建一個名為“app.js”的文件。這個文件將是我們的Node.js應用程序的主文件,并包含我們的所有代碼。

按照以下步驟安裝所需的第三方Node.js模塊:

    打開命令提示符或終端,并切換到“AppointmentSystem”文件夾。運行以下命令:npm init使用默認值回答所有提示問題,完成“package.json”文件的創建。安裝以下模塊:
npm install express ejs nodemailer mysql body-parser express-session --save

登錄后復制express:這是一個流行的Node.js框架,用于搭建Web應用程序。ejs:這是一個模板引擎,可以動態生成HTML頁面。nodemailer:這是一個Node.js模塊,用于向客戶發送電子郵件。mysql:這是一個Node.js模塊,用于連接MySQL數據庫。body-parser:這是一個Node.js中間件,用于解析HTTP請求的主體。express-session:這是一個Node.js中間件,用于處理會話。

    代碼實現

首先,我們需要在我們的主文件“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'
});

登錄后復制

現在,我們接下來定義我們的路由功能,我們定義兩個路線,一個用于獲取預約表格,另一個用于提交運單。

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');
});

登錄后復制

    啟動該應用程序

要啟動server,只需在命令提示符或終端中導航到程序文件夾,并運行以下命令:

node app.js

登錄后復制

現在,在您的Web瀏覽器中打開“localhost:3000”,即可使用您的在線預約系統。

分享到:
標簽:利用 功能 在線 項目 預約
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定