繁体   English   中英

node.js POST 空请求正文

[英]node.js POST empty req.body

我在将数据存储到 MySQL 数据库时遇到问题。 我在控制台空白处得到返回。像这样 {}

这是路线代码::: app.post('/create', employeeController.create);

这是我的 controller 代码


exports.create = function(req, res) {

console.log((req.body));
const new_employee = new Employee(req.body);
//handles null error
if(req.body.constructor === Object && Object.keys(req.body).length === 0){
  res.status(400).send({ error:true, message: 'Please provide all required field' });
}else{
    Employee.create(new_employee, function(err, employee) {
      if (err)
      res.send(err);
      res.json({error:false,message:"Employee added successfully!",data:employee});
    });
}
};

这是我的 model 代码:

var db = require('../database');
//Employee object create
var Employee = function(employee){
this.name = employee.name;
this.email = employee.email;
this.position = employee.position;
};

Employee.create = function (newEmp, result) {
db.query("INSERT INTO employee set ?", newEmp, function (err, res) {
if(err) {
console.log("error: ", err);
result(err, null);
}
else{
console.log(res.insertId);
result(null, res.insertId);
}
});
};

module.exports= Employee;

我的视图代码:

<form action="/create" enctype="multipart/form-data" method="POST">
<div class="row">
<div class="col-md-6">
<label>Name</label>
<input name="name" type="text" class="form-control" required>
</div>
<div class="col-md-6">
<label>Email</label>
<input name="email" type="email" class="form-control" required>
</div>
</div>
<div class="row">
<div class="col-md-6">
<label for="exampleFormControlTextarea1" class="form-label">Position</label>
<input name="position" type="text" class="form-control" required>
</div>

</div>

<button type="submit" class="btn btn-primary">Save</button>
<button type="submit" class="btn btn-primary">Cancel</button>
<br><br>

</form>

我在日志中收到 {},这意味着 req.body 变得空白。

我在 app.js 中尝试过

app.use(bodyParser.json());
app.use(express.urlencoded({limit: '100mb',extended: false }));

但它不工作

在你的 app.use(bodyParser.json() app.use(bodyParser.urlencoded({ extended: false })) app.use(bodyParser.json()); ,并删除app.use(express.urlencoded({limit: '100mb',extended: false })); .

app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json());

然后删除表单中enctype="multipart/form-data" 因为您的表单只有文本输入,所以您可以将其删除。 bodyParser不支持multipart/form-data

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM