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

提交表单时出现此错误:

无法读取未定义的属性'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 } ); 

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

所以它会像

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

这也起作用:

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

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