使用Node.js和MongoDB的酒店预订系统
在酒店预订系统中,将为用户提供姓名、电子邮件和房间号码。我们需要创建模式,并且还有两个API。一个API用于从数据库获取数据,另一个API用于向数据库发送房间号码、姓名、电子邮件等数据。
先决条件:
步骤1: 进入您要创建API的文件夹,使用IDE打开它,同时打开命令提示符或PowerShell运行:
npm init -y
步骤2: 使用以下命令创建名为 index.js 的文件:
touch index.js
步骤3: 现在使用以下命令安装 mongoose 和 MongoDB 模块:
npm i express mongoose mongodb cors
项目结构:
它看起来是这样的。
示例: 现在在 index.js 文件中写入以下代码
index.js
// 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,你可以在里面看到这些数据