2017-03-01 64 views
1

我想通過發送表單來更新MongoDB中的一些數據。 所以,比如我有形式:如何在Mongodb(Mongoose)中獲取html字段數據?

<form action='/update' method='post'> 
    <input type='text' name='username'> 
    <input type='submit' value='send'>  
</form> 

而且具有代碼:

router.post('/change', function (req, res) { 
    User.findOneAndUpdate({_id: 1}, {$set:{name:"Garry"}}, {new: true}, function(err, doc){ 
     if(err){ 
      console.log("Something wrong when updating data!"); 
     } 
     console.log(doc); 
    } 
); 

如何從我的「用戶名」字段,而不是「加里」插入值?我怎樣才能在貓鼬中聲明我的'usernamename'變量?

回答

1

要獲取POST參數,您需要ExpressJS body-parser包。

$ npm install body-parser --save 

將它添加到package.json之後,您必須在server.js文件中對其進行配置。

var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); // support json encoded bodies 
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies 

通過POST方法發送到服務器的表單數據在主體中接收。因此,您的身體將擁有您需要保存,更新或執行任何操作的所有數據。您將會收到像這樣的req.body.variableName。

router.post('/change', function (req, res) { 
var username = req.body.username; 
User.findOneAndUpdate({_id: 1}, {$set:{name:username}}, {new: true}, function(err, doc){ 
    if(err){ 
     console.log("Something wrong when updating data!"); 
    } 
    console.log(doc); 
} 
); 
相關問題