2015-04-29 41 views
1

我與node.js.I一起新增了需要在Mongodb中保存來自HTML頁面use - form(用戶名,密碼,email e.t.c)的數據。我有這樣的代碼:將POST數據保存到MongoDB:Node.js

var Schema = new mongoose.Schema({ 
     _id : String, 
     name: String, 
     age : Number 
}); 

var user = mongoose.model('emp', Schema); 

    app.post('/new', function(req, res){ 
     new user({ 
     _id : req.body.email, 
     name: req.body.name, 
     age : req.body.age   
     }).save(function(err, doc){ 
     if(err) res.json(err); 
     else res.send('Successfully inserted!'); 
     }); 
    }); 

<form action="/new" method="POST"> 
<label for="email">Email: </label> 
<input type="email" name="email" /><br /> 
<label for="name">Name: </label> 
<input type="text" name="name" /><br /> 
<label for="age">Age: </label> 
<input type="number" name="age" /><br /> 
<input type="submit"/> 

當我運行服務器。試圖保存一些數據。我看到消息 「無法讀取屬性'電子郵件'的未定義」 「TypeError:無法讀取屬性'電子郵件'的未定義」 有人幫助我請與這個誤解。 Thans很多!

+1

你必須包括bodyParser中間件使用'req.body' – adeneo

+0

https://github.com/expressjs/body-parser – adeneo

+0

謝謝你真是太棒了!這是現在的作品!我正在安裝框架 - 表達。 「json」默認在這一行「app.use(bodyParser.json());」 –

回答

0

另外,您不需要在模式中定義_id,它會自動創建。也許你想定義電子郵件:字符串,因此它匹配你的req.body.email

+0

這僅僅是一個例子,如何在db中創建用戶註冊。每個電子郵件都是唯一我改變了這個參數。現在它正在工作。謝謝。 –