我正在尝试使用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数据
答案 0 :(得分:0)
为了从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());
参考
如果有帮助,请告诉我。
答案 1 :(得分: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);
});
});
});