1

我正在尝试使用 post 请求将数据插入数据库,如下所示

127.0.0.1:3000/api/users?fname=asd&lname=edc&emailid=asdas.asds@gmail.com&userpass=dasd

但在数据库中输入了空白数据。我正在使用 MongoDB 作为数据库。

我正在使用 AJAX 请求执行此操作,以下是我正在使用的代码

addUser(dataUser){
 console.log("Adding user:", dataUser);
 $.ajax({
   type: 'POST', url: '/api/users', contentType: 'application/json',
   data: JSON.stringify(dataUser),
   success: function(data) {
     console.log("check it");
   }.bind(this),
   error: function(xhr, status, err) {
     // ideally, show error to user.
     console.log("Error adding bug:", err);
   }
 });
}

这是 nodeJS 文件中的 mt POST 方法

app.post('/api/users', function(req,res){
 console.log("Req body:", req.body);
 var newUser = req.body;
 db.collection("Users").insertOne(newUser, function(err, result) {
   var newId = result.insertedId;
   db.collection("Users").find({_id: newId}).next(function(err, doc) {
     res.json(doc);
   });
 });
});

我检查了 dataUser 变量在转换为 JSON 后给出了正确的值,但仍然在 nodeJS 代码中我得到了空白 JSON 数据

4

2 回答 2

0
app.post('/api/users', function(req,res){
 console.log("Req body:", req.body);

 //parse json string
 var newUser = JSON.parse(req.body);

 db.collection("Users").insertOne(newUser, function(err, result) {
   var newId = result.insertedId;
   db.collection("Users").find({_id: newId}).next(function(err, doc) {
     res.json(doc);
   });
 });
});
于 2017-03-27T11:58:22.173 回答
0

要使用 express 从 req 获取正文,您需要body-parser使用模块,npm install body-parser因为body-parser模块已从最新版本的express.

添加此依赖项后,您需要在 nodejs 文件中添加这些行。

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

app.use(bodyParser.json());

参考

让我知道它是否有帮助。

于 2017-03-27T11:17:10.183 回答