如何在Mongodb(Mongoose)中获取html字段数据?

我想通过发送表单来更新MongoDB中的一些数据。 所以例如我有一个forms:

<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); } ); 

如何从我的“用户名”字段插入值,而不是“加里”? 我怎样才能在mongoose声明我的'usernamename'variables?

要获取POST参数,您需要ExpressJS body-parser包。

 $ npm install body-parser --save 

一旦它被添加到package.json,你必须在你的server.js文件中configuration它。

 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); } );