
인터넷의 지속적인 발전으로 고객의 예약 및 비즈니스 관리를 용이하게 하기 위해 온라인 예약 시스템을 사용하는 기업이 점점 더 많아지고 있습니다. 이런 상황에서 Node.js를 이용해 온라인 예약 기능을 구현하는 웹 프로젝트가 점차 화제가 되고 있다.
이 기사에서는 Node.js를 사용하여 웹 기반 온라인 약속 시스템을 개발하는 방법을 간략하게 소개하고 몇 가지 코드 예제를 제공하여 자신만의 온라인 약속 시스템을 만들기 전에 이해하는 데 도움이 되기를 바랍니다. 프로세스.
- 요구사항 분석
이러한 웹 프로젝트를 개발하기 전에 신중한 요구사항 분석을 수행해야 합니다. 다음은 본 웹 프로젝트에서 구현해야 할 몇 가지 필수 기능과 특징입니다.
- 고객은 웹 사이트에서 사용 가능한 시간과 서비스를 보고 선택할 수 있습니다.
- 고객은 적절한 시간을 선택하고 판매자에게 요청을 보낼 수 있습니다.
- 판매자는 약속 요청을 확인하고 이를 수락하거나 거부할 수 있습니다.
- 판매자가 예약 요청을 수락하면 시스템은 예약 정보를 데이터베이스에 입력하고 고객에게 확인 이메일을 보냅니다.
- 판매자가 약속 요청을 거부하면 시스템에서 고객에게 거부 이메일을 보냅니다.
- 데이터베이스 디자인
이 예에서는 MySQL 데이터베이스를 사용하여 약속 정보를 저장하겠습니다. "Appointments"라는 테이블을 만들어야 하며 다음 열이 포함됩니다.
- ID(고유 식별자)
- Customer Name
- Customer Email
- Service Type
- Date
- Time
- Status( 보류 중인 프로세스, 수락 또는 거부)
다음은 이 테이블을 생성하는 데 사용할 수 있는 SQL 문입니다.
1 2 3 4 5 6 7 8 9 10 | 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" 파일 생성이 완료됩니다.
- 다음 모듈을 설치하세요:
1 | 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 미들웨어입니다.
- 코드 구현
먼저 메인 파일 "app.js"에 방금 설치한 모든 모듈을 소개해야 합니다.
1 2 3 4 5 6 7 8 | 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" 폴더를 사용하므로 이를 구성할 필요가 없습니다.
1 2 3 4 5 6 7 8 | 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" 함수를 사용하여 데이터베이스 연결을 만든 다음 개체를 사용하여 쿼리합니다.
1 2 3 4 5 6 | const pool = mysql.createPool({
host: 'localhost' ,
user: 'root' ,
password: 'password' ,
database: 'appointments'
});
|
로그인 후 복사
이제 라우팅 기능을 정의해 보겠습니다. 하나는 예약 양식을 받는 경로이고 다른 하나는 운송장을 제출하는 경로입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 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" 기능을 사용하여 애플리케이션을 시작하고 청취 포트를 제공해야 합니다.
1 2 3 | app.listen(3000, () => {
console.log( 'Server started on port 3000' );
});
|
로그인 후 복사
- 애플리케이션 실행
서버를 시작하려면 명령 프롬프트나 터미널에서 프로그램 폴더로 이동하여 다음 명령을 실행하세요.
이제 웹 브라우저에서 "localhost"를 엽니다:3000” 귀하의 온라인 예약 시스템.
위 내용은 Node.js를 활용하여 온라인 예약 기능을 구현하는 웹 프로젝트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!