使用 Node.js 和 MongoDB 的酒店预订系统
在酒店预订系统中,会有一个用户输入他/她的姓名、电子邮件和房间号。他们会在预订后得到。为此,我们必须创建模式,并且我们有两个 API。一个 API 用于从数据库中获取数据,另一个 API 将数据发送到数据库房间号、姓名、电子邮件等。
先决条件:
- NodeJS 安装在你的系统中(安装)
- MongoDB 安装在您的系统中(安装)
- Postman 桌面或 Thunderclient VScode 扩展(安装)
项目设置和模块安装:
第 1 步:转到要在其中创建 API 的文件夹并在 IDE 以及 cmd 或 PowerShell 中打开它并运行:
npm init -y
第 2 步:使用以下命令创建一个名为index.js的文件:
touch index.js
第 3 步:现在使用以下命令安装mongoose和MongoDB模块:
npm i express mongoose mongodb cors
项目结构:它看起来像这样。
示例:现在在index.js文件中写下以下代码
index.j
// To connect with your mongoDB database
const mongoose = require('mongoose');
mongoose.connect(
'mongodb://localhost:27017/',
{
dbName: 'yourDB-name',
useNewUrlParser: true,
useUnifiedTopology: true,
},
(err) => (err ? console.log(err) :
console.log('Connected to yourDB-name database')),
);
// Schema for hotel Booking
const UserSchema = new mongoose.Schema({
name: {
type: String,
},
email: {
type: String,
required: true,
unique: true,
},
roomNo: {
type: String,
required: true,
},
date: {
type: Date,
default: Date.now,
},
});
const RoomBooked = mongoose.model('users', UserSchema);
RoomBooked.createIndexes();
// For backend and express
const express = require('express');
const cors = require('cors');
const app = express();
app.use(express.json());
app.use(cors());
app.get('/', (req, resp) => {
resp.send('App is Working');
});
// Register data to book hotelroom
app.post('/register', async (req, resp) => {
try {
const user = new RoomBooked(req.body);
let result = await user.save();
result = result.toObject();
if (result) {
delete result.password;
resp.send(req.body);
console.log(result);
} else {
console.log('User already register');
}
} catch (e) {
resp.send('Something Went Wrong');
}
});
// Getting roombooked details
app.get('/get-room-data', async (req, resp) => {
try {
const details = await RoomBooked.find({});
resp.send(details);
} catch (error) {
console.log(error);
}
});
// Server setup
app.listen(5000, () => {
console.log('App listen at port 5000');
});
运行应用程序:运行以下命令来启动应用程序:
node index.js
输出:为预订房间和获取详细信息创建 API。
注册或预订
http://localhost:5000/register
从数据库中获取预订数据
http://localhost:5000/get-room-data
注意:如果您打开 MongoDB,您可以在其中看到此数据