En realidad, estaba desarrollando una aplicación flutter que envía los datos a mi propia API creada en el nodo js y luego los datos van al clúster de MongoDB, cuando probé la API, funcionaba y los datos van a MongoDB, pero cuando intenté enviar los datos de mi aplicación flutter por lo que está dando el siguiente error:
(node:4856) UnhandledPromiseRejectionWarning: ValidationError: User validation failed: name: Path `name` is required., email: Path `email` is required., password: Path `password` is required.Creo que los datos requeridos no se reciben en MongoDB, así que creé una aplicación javascript simple que envía esos datos a la API, pero ESTABA recibiendo el mismo error, creo que este es el error de mi API, pero todavía está bien cuando envío los datos del cartero, o trueno-cliente. Este es el código de la API que he creado:
const DB = "mydburl" app.use(express.json()); app.post('/api/signup', async (req, res) => { const {name, email, password} = req.body; const existingUser = await User.findOne({ email }); if (existingUser) { return res.status(400).json({ msg: "User with same email already already exists" }) } const hashedPassword = await bcryptjs.hash(password, 8); let user = new User({ email, password : hashePassword, name, }); res.json(user) user = await user.save(); console.log(user); }); mongoose.connect(DB).then(() => { console.log("connection succesful") }) .catch((e) => { console.log(e); }) app.listen(PORT, "0.0.0.0", () => { console.log(`connected at port ${PORT}`) }); app.post('/api/signup', async (req, res) => { const {name, email, password} = req.body; console.log(`name=${name} , email = ${email} , password=${password}`); const existingUser = await User.findOne({ email }); if (existingUser) { return res.status(400).json({ msg: "User with same email already already exists" }) } const hashedPassword = bcryptjs.hashSync(password, 8); let user = new User({ email:email, password : hashePassword, name:name }); user.save().then((userSaved)=>{ return res.status(200).json(user); }).catch((e)=>{ return res.status(500).json({status:"error",error:e}) }); });