尝试将表单元素保存到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模型的文档