📜  使用 Node.js 和 MongoDB 的酒店预订系统

📅  最后修改于: 2022-05-13 01:56:14.115000             🧑  作者: Mango

使用 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 步:现在使用以下命令安装mongooseMongoDB模块:

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,您可以在其中看到此数据