当试图将表单元素保存到mongoDB时,无法读取未定义错误的属性

Cannot read property of undefined error when trying to save form element to mongoDB

本文关键字:读取 未定义 属性 错误 mongoDB 表单 元素 保存      更新时间:2023-09-26

当我提交表单时,我得到了这个错误:

无法读取未定义的属性'firstName'

提前感谢男生/女生:)

////// NODE CODE //////
var MyUser = mongoose.model( 'users' , { name: String } );
app.post( '/user' , function ( req, res ) {
    var User = new MyUser( {
        name: req.body.firstName
    })
    .save( function ( err, doc ) {
        err ? res.send( err ) : res.redirect( '/' );
    });  
});

/////// MARKUP /////
<form method="POST" action="/user">
    <label>First Name</label>
    <input type="text" name="firstName" /> 
    <button>Submit</button>
</form>

问题是你没有定义一个好的模式

var MyUser = mongoose.model( 'users' , { name: String } );

你只是传递一个简单的对象作为第二个参数,需要是aSchema实例。

所以它会像

var userSchema = new mongoose.Schema({
  name: String 
});
var MyUser = mongoose.model( 'users' , userSchema );

var MyUser = mongoose.model( 'users' , new mongoose.Schema({name: String}));

这里有一些关于如何定义猫鼬模型的文档