尝试将表单元素保存到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模型的文档
- 如何在Express.JS中优化路线?
- TypeError:无法读取未定义的属性'handle' – if(fn.handle && fn.set)mount_app = fn
- 将数据发送到Express的前端并访问它
- Electron JS,使用Express后端和单独的html前端启动应用程序
- 表示未find/使用布局
- 使用Node.js在HTML5mode中进行angular度路由
- 获得“错误:string”不是有效的BCrypt哈希“,抛出一个错误:)”在摩卡ExpressJStesting
- 对Express上的某些请求禁用csrfvalidation
- Loopback.iorest连接器 – json发布不工作