2017-03-01 8 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'変数をmongooseで宣言できますか?

答えて

1

POSTパラメータを取得するには、ExpressJSボディパーサーパッケージが必要です。

$ 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); 
} 
); 
関連する問題