项目集成酒店模块遇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" }}> ← </NavLink> 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
相关产品推荐
相关产品推荐

