节点js和pug中未定义req值

时间:2018-12-31 10:52:00

标签: javascript html node.js

我正在使用pug生成如下表格: person.pug

html
head
   title Person
   body
      form(action = "/person", method = "POST")
      div
     label(for = "name") Name: 
     input(name = "name")
  br
  div
     label(for = "age") Age: 
     input(name = "age")
  br
  div
     label(for = "nationality") Nationality: 
     input(name = "nationality")
  br
  button(type = "submit") Create new person

在服务器端,我试图通过post方法处理该请求:method:

app.post('/person', function(req, res){
var personInfo = req.body; //Get the parsed information
console.log(req.body);
if(req.body == null) {
    res.render('show_message', {
        message: "Sorry, you provided worng info", type: "error"});
} else {
    if(!personInfo.name || !personInfo.age || !personInfo.nationality){
    res.render('show_message', {
        message: "Sorry, you provided worng info", type: "error"});
    } else {
    var newPerson = new Person({
        name: personInfo.name,
        age: personInfo.age,
        nationality: personInfo.nationality
    });

    newPerson.save(function(err, Person){
        if(err)
            res.render('show_message', {message: "Database error", type: "error"});
        else
            res.render('show_message', {
                message: "New person added", type: "success", person: personInfo});
    });
    }
}
 });

当我运行请求时,req.body始终为null(未定义)。

1 个答案:

答案 0 :(得分:1)

const QString &string() const;默认情况下未填写。如the documentation中所述:

  

需求主体

     

包含在请求正文中提交的键/值数据对。 默认情况下,它是req.body ,并且在使用诸如body-parsermulter之类的解析主体中间件时填充。

(我的重点)