Ich erstelle eine einfache CRUD-Anwendung mit dem MERN-Stack Unten finden Sie den Code zum Hinzufügen von Benutzerdetails in der Datenbank
import React , {useState, useEffect} from 'react' import axios from 'axios'; import { useNavigate } from 'react-router-dom'; const initialValue = { name: '', username: '', email: '', phone: '' } const AddUser = () => { // hooks const [user, setUser] = useState(initialValue); const { name, username, email, phone } = user; let navigate = useNavigate(); const onValueChange = (e) => { setUser({...user, [e.target.name]: e.target.value}) } // ADD USER const config = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } } const addUser = async (user) => { return await axios.post("http://localhost:5000/add", user , config); } const addUserDetails = async() => { await addUser(user); navigate('/all'); } return ( <div> <h1>Add Details</h1> <form className="form"> <input onChange={(e) => onValueChange(e)} placeholer="Add Name"name='name' value={name} id="my-input" /> <input onChange={(e) => onValueChange(e)} placeholer="Add Username"name='username' value={username} id="my-input" /> <input onChange={(e) => onValueChange(e)} placeholer="Add Email"name='email' value={email} id="my-input" /> <input onChange={(e) => onValueChange(e)} placeholer="Add Phone"name='phone' value={phone} id="my-input" /> <button type="submit" onClick={() => addUserDetails()}>Add</button> </form> </div> ) } export default AddUser
Das Folgende ist ein Screenshot von Mongodb
Das Folgende ist Route.js
const router = require('express').Router(); const User = require('../model/todoItems.js'); // Coming from model // POST DATA router.post('/add',async (req,res) =>{ try { const newUser = new User({user: req.body.user}); // saving in db await newUser.save(); res.status(201).json(newUser); } catch (error) { res.status(409).json({ message: error.message}); } } ); module.exports = router;
Das Folgende ist das Modell
const mongoose = require( 'mongoose'); const userSchema = new mongoose.Schema({ user:{ name: String, username: String, email: String, phone: Number } }); module.exports= mongoose.model('user', userSchema);
{_id:ObjectId(641548f49338e07c498bf231),__v:0} Das habe ich bekommen Datenbankverbindung erfolgreich. Ich möchte, dass alle Details veröffentlicht werden. Was soll ich tun?
您的代码中有一些错误。我想当你纠正它们时问题就会解决。
1-) 检查您在route.js 中导入了正确的模型。因为它是todoItem.js。我想这一定是和用户有关的。
2-) 在 mongoose 模型中,不需要使用 user 作为父级。只需将其删除,使其看起来像:
3-) 在route.js 中,更改 const newUser 行,如下所示:
4-) 确保使用 console.log 获得正确的 req.body