>웹 프론트엔드 >JS 튜토리얼 >Node.js를 활용하여 온라인 예약 기능을 구현하는 웹 프로젝트

Node.js를 활용하여 온라인 예약 기능을 구현하는 웹 프로젝트

王林
王林원래의
2023-11-08 16:33:111597검색

Node.js를 활용하여 온라인 예약 기능을 구현하는 웹 프로젝트

인터넷의 지속적인 발전으로 고객의 예약 및 비즈니스 관리를 용이하게 하기 위해 온라인 예약 시스템을 사용하는 기업이 점점 더 많아지고 있습니다. 이런 상황에서 Node.js를 이용해 온라인 예약 기능을 구현하는 웹 프로젝트가 점차 화제가 되고 있다.

이 기사에서는 Node.js를 사용하여 웹 기반 온라인 약속 시스템을 개발하는 방법을 간략하게 소개하고 몇 가지 코드 예제를 제공하여 자신만의 온라인 약속 시스템을 만들기 전에 이해하는 데 도움이 되기를 바랍니다. 프로세스.

  1. 요구사항 분석

이러한 웹 프로젝트를 개발하기 전에 신중한 요구사항 분석을 수행해야 합니다. 다음은 본 웹 프로젝트에서 구현해야 할 몇 가지 필수 기능과 특징입니다.

  • 고객은 웹 사이트에서 사용 가능한 시간과 서비스를 보고 선택할 수 있습니다.
  • 고객은 적절한 시간을 선택하고 판매자에게 요청을 보낼 수 있습니다.
  • 판매자는 약속 요청을 확인하고 이를 수락하거나 거부할 수 있습니다.
  • 판매자가 예약 요청을 수락하면 시스템은 예약 정보를 데이터베이스에 입력하고 고객에게 확인 이메일을 보냅니다.
  • 판매자가 약속 요청을 거부하면 시스템에서 고객에게 거부 이메일을 보냅니다.
  1. 데이터베이스 디자인

이 예에서는 MySQL 데이터베이스를 사용하여 약속 정보를 저장하겠습니다. "Appointments"라는 테이블을 만들어야 하며 다음 열이 포함됩니다.

  • ID(고유 식별자) ​​
  • Customer Name
  • Customer Email
  • Service Type
  • Date
  • Time
  • Status( 보류 중인 프로세스, 수락 또는 거부)

다음은 이 테이블을 생성하는 데 사용할 수 있는 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: 이는 웹 애플리케이션 구축에 널리 사용되는 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'
});

이제 라우팅 기능을 정의해 보겠습니다. 하나는 예약 양식을 받는 경로이고 다른 하나는 운송장을 제출하는 경로입니다.

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

이제 웹 브라우저에서 "localhost"를 엽니다:3000” 귀하의 온라인 예약 시스템.

위 내용은 Node.js를 활용하여 온라인 예약 기능을 구현하는 웹 프로젝트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.