req.body未定义 - nodejs

zoe*_*ver 1 request node.js express

这是我的HTML:

<form action='/new'  method='POST' >
  <span>pool name: </span>
  <input type="text" name="name" />
  <input type="hidden" name="imageSrcList" />
  <button type='submit' >Create new</button>
</form>
Run Code Online (Sandbox Code Playgroud)

这是相关的JS:

var app = express()
app.use(fileUpload());
app.set('view engine', 'ejs')
app.use(express.static(__dirname + '/views'));
Run Code Online (Sandbox Code Playgroud)
app.post('/new', (req, res) => {
    console.log(req.body.name);
  })
Run Code Online (Sandbox Code Playgroud)

控制台读出:

TypeError: Cannot read property 'name' of undefined
Run Code Online (Sandbox Code Playgroud)

我试过了console.log(req.body),这也是未定义的.

提前致谢!

pet*_*teb 7

您缺少body-parser必须req.body设置为值的中间件.Express默认情况下没有这个,需要通过NPM安装npm i --save body-parser

const bodyParser = require('body-parser')
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
Run Code Online (Sandbox Code Playgroud)