#node.js #mongodb #mongoose #mern
Вопрос:
Я везде искал эту проблему. но я не могу найти правильный способ исправить это. помогите мне разобраться, в чем проблема.
const router = require("express").Router();
let Reg = require("../models/Register");
http://localhost:8070/Register/add
router.route("/add").post((req,res)=>{
const name = req.body.Name;
const email = req.body.Email;
const number = Number(req.body.Number);
const password = req.body.Password;
const NewAdd = new Reg({
name,
email,
number,
password
})
NewAdd.save().then(()=>{
res.json("Registration Added")
}).catch((err)=>{
console.log(err);
res.json(err)
console.log("reg err");
})
})
а это папка модуля js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const RegSchema = new Schema({
Name: {
type: String,
required: true
},
Email: {
type: String,
required: true
},
Password: {
type: String,
required: true
},
Number: {
type: Number,
required: true
}
});
const Register = mongoose.model("Register",RegSchema);
module.exports = Register;
Это сервер .js
const express = require("express");
const mongoose = require("mongoose");
const bodyParser =require("body-parser");
const cors = require("cors");
require("dotenv").config();
const app = express();
const PORT = process.env.PORT || 8070;
app.use(cors());
app.use(bodyParser.json());
const URL = process.env.MONGODB_URL;
mongoose.connect(URL,{
useCreateIndex: true,
useNewUrlParser: true,
useUnifiedTopologyL: true,
useFindAndModify: false
});
const connection = mongoose.connection;
connection.once("open", () =>{
console.log("Mongodb connection success!");
})
const AddRouter = require("./routes/Registers.js");
app.use("/Register",AddRouter);
app.listen(PORT, () =>{
console.log(`The port is : ${PORT}`);
})
ошибка, показывающая
Имя: Ошибка проверки:
Name
Требуется путь. при проверке (C:UsersSliitDesktopReg-BackendTravel-management-systemnode_modulesmongooselibschematype.js:1270:13) в C:UsersSliitDesktopReg-BackendTravel-management-systemnode_modulesmongooselibschematype.js:1253:7 в массиве.forEach () при построении схемы.Тип схемы.doValidate (C:UsersSliitDesktopReg-BackendTravel-management-systemnode_modulesmongooselibschematype.js:1198:14) в C:UsersSliitDesktopReg-BackendTravel-management-systemnode_modulesmongooselibdocument.Яш:2545:18 на processTicksAndRejections (узел:внутренние/процесс/task_queues:78:11) { свойства: [объект], вроде: ‘требуется’, путь: ‘имя’, значение: не определено, причина: не определено, [символ(Мангуст:validatorError)]: «истина»} }, _message: ‘Регистрация ошибка проверки’ }
Я тестирую API у почтальона и получаю эту ошибку
«ошибки»: { «номер»: { «имя»: «ValidatorError», «сообщение»: «путь
Number
необходим.», «свойства»: { «сообщение»: «путьNumber
необходим.», «тип»: «требуется», «путь»: «количество» }, «добрый»: «требуется», «путь»: «количество» }, «пароль»: { «имя»: «ValidatorError», «сообщение»: «путьPassword
необходим.», «свойства»: { «сообщение»: «путьPassword
необходим.», «тип»: «требуется», «путь»: «пароль» }, «добрый»: «требуется», «путь»: «пароль» }, «электронная почта»: { «имя»: «ValidatorError», «сообщение»: «путьName
необходим.», «свойства»: { «сообщение»: «путьName
необходим.», «тип»: «требуется», «путь»: «имя» }, «добрый»: «требуется», «путь»: «имя» } }, «_message»: «зарегистрировать сбой проверки», «имя»: «ValidationError», «message»: «как зарегистрировать проверка не пройдена: номер: путьNumber
требуется., Пароль: путьPassword
требуется., Электронная почта: путьName
требуется.» }
Ответ №1:
Используйте один и тот же регистр в «NewAdd» и в «RegSchema».
const NewAdd = new Reg({
name,
email,
number,
password
})
и
const RegSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
number: {
type: Number,
required: true
}
})