Node.js 系统验证失败-节点/Express/Mongoose
当我提交表单时,我收到以下错误:错误[ValidationError]:系统验证失败:需要lastName:PathNode.js 系统验证失败-节点/Express/Mongoose,node.js,mongodb,forms,express,mongoose,Node.js,Mongodb,Forms,Express,Mongoose,当我提交表单时,我收到以下错误:错误[ValidationError]:系统验证失败:需要lastName:PathlastName,需要firstName:PathfirstName。 我不确定这是什么原因造成的,当我使用console.log(formData)时,我会将提交的数据保存到表单中 App.js const express = require('express') const app = express(); const mongoose = require('mongoose'
lastName
,需要firstName:PathfirstName
。
我不确定这是什么原因造成的,当我使用console.log(formData)时,我会将提交的数据保存到表单中
App.js
const express = require('express')
const app = express();
const mongoose = require('mongoose');
const dotenv = require ('dotenv/config');
const System = require('./models/System');
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.get('/', (req,res) => {
res.render('index.ejs');
});
app.post('/post-feedback', (req, res) => {
const formData = {
firstame: req.body.firstName,
lastname: req.body.lastName,
assetTag: req.body.assetTag
}
const system = new System(formData);
system.save()
.then(result => {
console.log(result);
})
.catch(err => {
console.log(err);
});
});
型号:
const mongoose = require('mongoose');
var SystemSchema = new mongoose.Schema({
firstName: {
type: String,
required: true
},
lastName: {
type: String,
required: true
},
assetTag: {
type: Number,
required: true
}
});
module.exports = mongoose.model('System', SystemSchema);
表格:
名字:
姓氏:
资产标签:
提交
你出错的唯一原因是因为你在表单数据上打错了。它必须是firstName
和lastName
,确保它与您的架构字段相同,然后确保assetTag
是一个数字,因为您的架构类型是数字
您可以尝试使用以下代码:
app.post('/post反馈',(请求、回复)=>{
常量formData={
//你在这里输入错误:firstame
firstName:req.body.firstName,
//你在这里输入错了:姓
lastName:req.body.lastName,
//必须是数字
assetTag:parseInt(请求主体assetTag);
}
常量系统=新系统(formData);
system.save()
。然后(结果=>{
控制台日志(结果);
})
.catch(错误=>{
控制台日志(err);
});
});
我希望它能帮助你
app.post('/post-feedback', (req, res) => {
const system = new System(req.body);
system.save()
.then(result => {
console.log(result);
})
.catch(err => {
console.log(err);
});
});
你出错的唯一原因是因为你在表单数据上打错了。它必须是firstName
和lastName
,确保它与您的架构字段相同,然后确保assetTag
是一个数字,因为您的架构类型是数字
您可以尝试使用以下代码:
app.post('/post反馈',(请求、回复)=>{
常量formData={
//你在这里输入错误:firstame
firstName:req.body.firstName,
//你在这里输入错了:姓
lastName:req.body.lastName,
//必须是数字
assetTag:parseInt(请求主体assetTag);
}
常量系统=新系统(formData);
system.save()
。然后(结果=>{
控制台日志(结果);
})
.catch(错误=>{
控制台日志(err);
});
});
我希望它能帮助你
app.post('/post-feedback', (req, res) => {
const system = new System(req.body);
system.save()
.then(result => {
console.log(result);
})
.catch(err => {
console.log(err);
});
});
我认为上面的代码应该是可行的
我认为上面的代码应该是有效的。有两件事需要更新,第一件是formdata对象键,因为它们应该匹配架构,第二件assetTag也应该是字符串。有两件事需要更新,第一件是formdata对象键,因为它们应该匹配架构,第二件assetTag也应该是字符串。