You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

项目集成酒店模块遇Cannot Get hotel/register错误求助

酒店模块数据存储MongoDB时出现Cannot Get hotel/register错误排查求助

我正在开发一个包含酒店模块的项目,目标是将前端提交的酒店数据存储到MongoDB数据库,但始终出现Cannot Get hotel/register错误。已多次排查相关代码(含HotelSchema.js、HotelRegistration.js等)及配置文件,仍未解决问题。相关文件截图及代码如下:

  • HotelRouter.js 【截图】
  • HotelService.js 【截图】
  • HotelControllers.js 【截图】
  • ApiCall.js 【截图】
  • Helper.js 【截图】
  • Backend app.js 【截图】

HotelSchema.js

const mongoose = require("mongoose");
const validator= require("validator");

const hotelSchema = new mongoose.Schema({
    fname:{
        type:String,
        required:true,
        trime:true,
        },
    location:{
        type:String,
        required:true,
        },
    email:{
        type:String,
        required:true,
        unique:true,
        validate(value){
            if(!validator.isEmail(value)){
                throw Error ("not valid email")
            }
        }
    },
    mobile:{
        type:String,
        required:true,
        unique:true,
        minlength:10,
        maxlength:10
    },
    star:{
        type:String,
        required:true,
    },
    room:{
        type:String,
        required:true,
    },
    profile:{
        type:String,
        required:true,
    },
    datecreated:Date,
    dateUpdated:Date
})


//model -->collection ko define karna
const hotel = new mongoose.model("hotelregisters",hotelSchema);

module.exports = hotel;

HotelRegistration.js

import React, { useState, useEffect } from "react";
import "./Hotel_Add.css";
// import Header1 from "../Header/Header1";
// import Header2 from "../Header/Header2";
import Card from "react-bootstrap/Card";
import Button from "react-bootstrap/Button";
import Form from "react-bootstrap/Form";
import Row from "react-bootstrap/Row";
import Select from "react-select";
import { ToastContainer, toast } from "react-toastify";
import { NavLink } from "react-router-dom";
import{hotelregisterfunc} from '../../services/HotelService'


const Hotel_Add = () => {
  const [inputdata, setInputData] = useState({
    fname: "", // <Form.Control type="text" name='fname'  placeholder='Enter FirstName' /> should be same as name inside input tag
    email: "",
    mobile: "",
    price: "",
  });

  // const [status, setStatus] = useState("Single"); //by deafult initial value active hoga
  const [room, setRoom] = useState("Single");
  const [location, setLocation] = useState("Dehradun"); 
  const [star, setStars] = useState("3"); 
  const [image, setImage] = useState("");
  const [preview, setPreview] = useState(""); //to preview image
  // const [showspin, setShowSpin] = useState(true);

  // setInput Value
  const setInputValue = (e) => {
    const { name, value } = e.target;
    setInputData({ ...inputdata, [name]: value });
  };

  // room type  set
  const setRoomValue = (e) => {
    setRoom(e.value);
  };

  //location set
  const setLocationValue = (e) => {
    setLocation(e.value);
  };

  //start category
  const setStarValue =(e)=>{
    setStars(e.value);
  };
  // profile set
  const setProfile = (e) => {
    setImage(e.target.files[0]);
  };

  // room type
  const rooms = [
    { value: "Single - 8000/per night", label: "Single - 8000/per night" },
    { value: "Double", label: "Double" },
    { value: "Delux", label: "Delux" },
  ];

  //locations
  const locations = [
    { value: "Dehradun", label: "Dehradun" },
    { value: "Mussorie", label: "Mussorie" },
    { value: "Nanital", label: "Nanital" },
    { value: "Almora", label: "Almora" },
  ];

  //star category
  const stars = [
    { value: "3", label: "3" },
    { value: "4", label: "4" },
    { value: "5", label: "5" },
  ];

  useEffect(() => {
    // if (image) {
    //   setPreview(URL.createObjectURL(image))
    // }
    // setTimeout(() => {
    //   setShowSpin(false)
    // }, 1200)
  }, []);

  //submit userdata
  const submitUserData = async (e) => {
    e.preventDefault();

    const { fname,  email, mobile,price } = inputdata;

    if (fname === "") {
      toast.error("Hotel name is Required !");
    }else if (location === ""){
      toast.error("Location is required");
    }
    // else if (location === "") {
    //   toast.error("Location is Required !");
    // }
    else if (email === "") {
      toast.error("Email is Required !");
    }else if (mobile === "") {
      toast.error("Mobile Number is Required !");
    }else if (mobile.length > 10) {
      toast.error("Enter Valid Mobile!f");
    }else if (star === "") {
      toast.error("Stars  is Required !");
    }else if (room === "") {
      toast.error("  Room is not Selected !");
    }else if (image === "") {
      toast.error("Image is Required !");
    }else if (price === "") {
      toast.error("Price is Required !");
    }else{
      // console.log(image);
    // toast.success("Registration is sucessfully done please check your email for verifaction")
    const data = new FormData();
    data.append("fname",fname)
    data.append("location",location)
    data.append("email",email)
    data.append("mobile",mobile)
    data.append("star",star)
    data.append("room",room)
    data.append("hotel_profile",image) //user_profile should be same as routes in router.js file
    data.append("price",price)

    const config={
      "Content-Typer":"multipart/form-data"
    }//header ke under yeh content type jayega

    const response = await hotelregisterfunc(data,config); //yeh function redirect hoga Apis.js file pe
    console.log(response);

    // if(response.status === 200){
    //   setInputData({
    //     ...inputdata,
    //     fname:"",
    //     lname:"",
    //     email:"",
    //     mobile:"",
    //     gender:"",
    //     location:""
    //   });

    //   setStatus("");
    //   setImage("")
    //   setUseradd(response.data)
    //   navigate("/")
    // }else{
    //   toast.error("Error!")
    // }
  }

    }
  

  useEffect(() => {
    if (image) {
      setPreview(URL.createObjectURL(image));
    }

    // setTimeout(() => {
    //   setShowSpin(false)
    // }, 1200)
  }, [image]);

  return (
    <>
      {/* <Header1 />
      <Header2/> */}
      <div className="container" id="section1">
        <h2 className="text-center mt-1">
          <NavLink to="/hotel" style={{ textDecoration: "none" }}>
            &#8592;
          </NavLink>
          &nbsp;&nbsp;Register Your Hotel Details
        </h2>
        <Card className="shadow mt-3 p-3">
          <div className="profile_div text-center">
            <img src={preview ? preview : "/man.png"} alt="img" />
          </div>

          <Form>
            <Row>
              <Form.Group className="mb-3 col-lg-6" controlId="formBasicEmail">
                <Form.Label>Hotel name</Form.Label>
                <Form.Control
                  type="text"
                  name="fname"
                  value={inputdata.fname} //value  was missing
                  onChange={setInputValue}
                  placeholder="Enter FirstName"
                />
              </Form.Group>
              <Form.Group className="mb-3 col-lg-6" controlId="formBasicEmail">
                <Form.Label>Hotel Address</Form.Label>
                <Select options={locations} onChange={setLocationValue} />
              </Form.Group>

              <Form.Group className="mb-3 col-lg-6" controlId="formBasicEmail">
                <Form.Label>Email address</Form.Label>
                <Form.Control
                  type="email"
                  name="email"
                  value={inputdata.email} //value  was missing
                  onChange={setInputValue}
                  placeholder="Enter Email"
                />
              </Form.Group>
              <Form.Group className="mb-3 col-lg-6" controlId="formBasicEmail">
                <Form.Label>Mobile</Form.Label>
                <Form.Control
                  type="text"
                  name="mobile"
                  value={inputdata.mobile} //value  was missing
                  onChange={setInputValue}
                  placeholder="Enter Mobile"
                />
              </Form.Group>
              <Form.Group className="mb-3 col-lg-6" controlId="formBasicEmail">
                <Form.Label>Select Star Category</Form.Label>
                <Select options={stars} onChange={setStarValue} />
              </Form.Group>

              <Form.Group className="mb-3 col-lg-6" controlId="formBasicEmail">
                <Form.Label>Select Room Types</Form.Label>
                <Select options={rooms} onChange={setRoomValue} />
              </Form.Group>
              <Form.Group className="mb-3 col-lg-6" controlId="formBasicEmail">
                <Form.Label>Select Your Profile</Form.Label>
                <Form.Control
                  type="file"
                  name="hotel_profile"
                  onChange={setProfile}
                  placeholder="Select Your Profile"
                />
              </Form.Group>
              <Form.Group className="mb-3 col-lg-6" controlId="formBasicEmail">
                <Form.Label>Enter Price of Rooms</Form.Label>
                <Form.Control
                  type="text"
                  name="price"
                  value={inputdata.price} //value  was missing
                  onChange={setInputValue}
                  placeholder="Enter Your Location"
                />
              </Form.Group>

              <Button
                variant="primary"
                type="submit"
                onClick={submitUserData}
                id="button1"
              >
                Submit
              </Button>
            </Row>
          </Form>
        </Card>
        <ToastContainer position="top-center" />
      </div>
    </>
  );
};

export default Hotel_Add;

我尝试将前端数据存入MongoDB数据库,但多次排查后仍出现Cannot Get hotel/register错误。

内容的提问来源于stack exchange,提问作者MEGHA GARG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:37:03