Heim > Artikel > Web-Frontend > 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.
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:
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:
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) );
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:
npm init
npm install express ejs nodemailer mysql body-parser express-session --save
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();
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 }));
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' });
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 }); } }); });
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'); });
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
Ö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!