Heim > Web-Frontend > js-Tutorial > Hauptteil

Webprojekt mit Node.js zur Implementierung der Online-Reservierungsfunktion

王林
Freigeben: 2023-11-08 16:33:11
Original
1520 Leute haben es durchsucht

Webprojekt mit Node.js zur Implementierung der Online-Reservierungsfunktion

Mit der kontinuierlichen Entwicklung des Internets beginnen immer mehr Unternehmen, Online-Terminvereinbarungssysteme zu nutzen, um Kunden die Terminvereinbarung und die Geschäftsabwicklung zu erleichtern. Unter diesen Umständen werden Webprojekte, die Node.js zur Implementierung von Online-Reservierungsfunktionen verwenden, allmählich zu einem heißen Thema.

In diesem Artikel stellen wir Ihnen kurz vor, wie Sie mit Node.js ein webbasiertes Online-Terminsystem entwickeln, und stellen einige Codebeispiele bereit, die Ihnen hoffentlich das Verständnis erleichtern, bevor Sie mit der Erstellung Ihres eigenen Online-Terminsystems beginnen Verfahren.

  1. Anforderungsanalyse

Bevor wir ein solches Webprojekt entwickeln, müssen wir eine sorgfältige Anforderungsanalyse durchführen. Im Folgenden sind einige notwendige Funktionen und Features aufgeführt, die in diesem Webprojekt implementiert werden müssen:

  • Kunden können verfügbare Zeiten und Dienste auf der Website einsehen und auswählen.
  • Kunden können einen beliebigen passenden Zeitpunkt wählen und eine Anfrage an den Händler senden.
  • Händler können Terminanfragen einsehen und diese annehmen oder ablehnen.
  • Wenn der Händler die Reservierungsanfrage akzeptiert, gibt das System die Reservierungsinformationen in die Datenbank ein und sendet eine Bestätigungs-E-Mail an den Kunden.
  • Wenn ein Händler eine Terminanfrage ablehnt, sendet das System eine Ablehnungs-E-Mail an den Kunden.
  1. Datenbankdesign

In diesem Beispiel verwenden wir eine MySQL-Datenbank, um Termininformationen zu speichern. Es muss eine Tabelle mit dem Namen „Termine“ erstellt werden, die die folgenden Spalten enthält:

  • ID (eindeutige Kennung) ​​
  • Kundenname
  • E-Mail-Adresse des Kunden
  • Servicetyp
  • Datum
  • Uhrzeit
  • Status (Ausstehend). Verarbeiten, Akzeptieren oder Ablehnen)

Hier ist eine SQL-Anweisung, die zum Erstellen dieser Tabelle verwendet werden kann:

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)
);
Nach dem Login kopieren
  1. Erstellen einer Node.js-Anwendung

Zuerst müssen wir Node.js auf unserem lokalen Computer installieren. Jetzt erstellen wir eine Node.js-Anwendung mit dem Namen „AppointmentSystem“.

Erstellen Sie einen Ordner mit dem Namen „AppointmentSystem“ und erstellen Sie im Ordner eine Datei mit dem Namen „app.js“. Diese Datei ist die Hauptdatei unserer Node.js-Anwendung und enthält unseren gesamten Code.

Befolgen Sie diese Schritte, um die erforderlichen Node.js-Module von Drittanbietern zu installieren:

  1. Öffnen Sie eine Eingabeaufforderung oder ein Terminal und wechseln Sie zum Ordner „AppointmentSystem“.
  2. Führen Sie den folgenden Befehl aus: npm init
  3. Beantworten Sie alle Eingabeaufforderungen mit Standardwerten, um die Erstellung der Datei „package.json“ abzuschließen.
  4. Installieren Sie die folgenden Module:
npm install express ejs nodemailer mysql body-parser express-session --save
Nach dem Login kopieren
  • express: Dies ist ein beliebtes Node.js-Framework zum Erstellen von Webanwendungen.
  • ejs: Dies ist eine Template-Engine, die HTML-Seiten dynamisch generieren kann.
  • nodemailer: Dies ist ein Node.js-Modul zum Versenden von E-Mails an Kunden.
  • mysql: Dies ist ein Node.js-Modul, das zur Verbindung mit der MySQL-Datenbank verwendet wird.
  • body-parser: Dies ist eine Node.js-Middleware zum Parsen des Körpers von HTTP-Anfragen.
  • express-session: Dies ist eine Node.js-Middleware für die Abwicklung von Sitzungen.
  1. Code-Implementierung

Zuerst müssen wir alle Module, die wir gerade installiert haben, in unserer Hauptdatei „app.js“ vorstellen:

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();
Nach dem Login kopieren

Als nächstes müssen wir die Anwendung konfigurieren. Unsere Anwendung verwendet die Standardordner „Ansichten“ und „Öffentlich“, sodass wir sie nicht konfigurieren müssen.

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
}));
Nach dem Login kopieren

Als nächstes müssen wir eine Verbindung zur MySQL-Datenbank herstellen. Wir werden die Funktion „createConnection“ verwenden, um eine Datenbankverbindung zu erstellen und dann das Objekt zur Abfrage verwenden.

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

Jetzt definieren wir unsere Routing-Funktion. Wir definieren zwei Routen, eine zum Abrufen des Reservierungsformulars und die andere zum Einreichen des Frachtbriefs.

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
      });
    }
  });
});
Nach dem Login kopieren

Im obigen Codeausschnitt verwenden wir zunächst die Funktion „pool.query“, um neue Termindatensätze in die MySQL-Datenbank einzufügen, und erstellen dann einen Nodemailer-Mailer, um Bestätigungs-E-Mails an Kunden zu senden. Abschließend rendern wir die Daten des Kunden auf der Bestätigungsseite, damit er seine Termindetails einsehen kann.

Schließlich müssen wir die Funktion „app.listen“ verwenden, um unsere Anwendung zu starten und einen Abhörport bereitzustellen.

app.listen(3000, () => {
  console.log('Server started on port 3000');
});
Nach dem Login kopieren
  1. Starten Sie die Anwendung

Um den Server zu starten, navigieren Sie einfach zum Programmordner in der Eingabeaufforderung oder im Terminal und führen Sie den folgenden Befehl aus:

node app.js
Nach dem Login kopieren

Öffnen Sie nun „localhost“ in Ihrem Webbrowser :3000, um ihn zu verwenden Ihr Online-Reservierungssystem.

Das obige ist der detaillierte Inhalt vonWebprojekt mit Node.js zur Implementierung der Online-Reservierungsfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!