[英]Validator error http POST response in Express JS
我不知道为什么我会收到验证器错误响应。 我已尝试尽可能多地进行调试,但我看不到问题出在哪里。 我已经使用了我在模式中使用的确切名称,但我仍然在 postman 和 rest 客户端中收到错误我的 server.js 如下所示:
const app = express()
const mongoose = require('mongoose')
const dotenv= require('dotenv')
const routesUrls=require('./routes/routes')
const cors = require('cors')
dotenv.config()
mongoose.connect(process.env.DATABASE_ACCESS, () =>console.log("Database Connected"))
app.use(express.json())
app.use(cors())
app.use('/app', routesUrls)
app.listen(4000, () => console.log("server is up and running"))
我的路线.js
const router = express.Router()
const signupTemplateCopy = require('../models/SignUpModels')
router.post('/signup/', (request,response) =>{
const SignedupUser = new signupTemplateCopy({
fullname:request.body.fullname,
username:request.body.username,
email:request.body.email,
password:request.body.password
})
SignedupUser.save().then(data =>{
response.json(data)})
.catch(error =>{
response.json(error)
})
})
module.exports = router ```
The Schema looks like this
```const mongoose = require('mongoose')
const signupTemplate = new mongoose.Schema({
fullname:{
type:String,
required:true
},
username:{
type:String,
required:true
},
email:{
type:String,
required:true
},
password:{
type:String,
required:true
},
date:{
type:Date,
default:Date.now
}
})
module.exports = mongoose.model('mytable', signupTemplate)
错误
"errors": {
"fullname": {
"name": "ValidatorError",
"message": "Path `fullname` is required.",
"properties": {
"message": "Path `fullname` is required.",
"type": "required",
"path": "fullname"
},
"kind": "required",
"path": "fullname"
},
"username": {
"name": "ValidatorError",
"message": "Path `username` is required.",
"properties": {
"message": "Path `username` is required.",
"type": "required",
"path": "username"
},
"kind": "required",
"path": "username"
},
"email": {
"name": "ValidatorError",
"message": "Path `email` is required.",
"properties": {
"message": "Path `email` is required.",
"type": "required",
"path": "email"
},
"kind": "required",
"path": "email"
},
"password": {
"name": "ValidatorError",
"message": "Path `password` is required.",
"properties": {
"message": "Path `password` is required.",
"type": "required",
"path": "password"
},
"kind": "required",
"path": "password"
}
},```
"_message": "mytable validation failed",
"message": "mytable validation failed: fullname: Path `fullname` is required., username: Path `username` is required., email: Path `email` is required., password: Path `password` is required."
}
确保你在 POSTMANT 和 route.js 中使用了准确的名称,检查我的问题所在的大写字母
const router = express.Router();
const signUpTemplateCopy = require("../models/signupmodels");
router.post("/signup", (request, response) => {
const signedUpUser = new signUpTemplateCopy({
fullName: request.body.fullName,
userName: request.body.userName,
Email: request.body.Email,
password: request.body.password,
});
signedUpUser.save().then((data) => {
response.json(data).catch((error) => {
response.json(error);
});
});
});
module.exports = router;
router.post('/signup/', (request,response) => {
const { fullname, username, email, password } = request.body
const SignedupUser = new signupTemplateCopy()
SignedupUser.fullname = fullname;
SignedupUser.username = username;
SignedupUser.email = email;
SignedupUser.password = password;
SignedupUser.save()
.then(data => {
response.json(data)
})
.catch(error => {
response.json(error)
}) )}
你可以试试这个。我对 mongoDb、express、nodeJs 还很陌生,但我认为一个好的做法是将这些函数放在 controller 文件中。
此外,如果使用 postman,请确保设置标题,Content-Type -> Application/JSON。 而你要发送的原始身体应该看起来像这样......
{ "fullname": "John Doe", "username": "johndoe123", "email": "johndoe@gmail.com", "password": "123456 }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.