为什么 node.js bodyParser 总是 returns 'undefined'?

why node.js bodyParser always returns 'undefined'?

In 'app.js' I have

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

'index.js' full codes

var express = require('express');
var router = express.Router();
var mysql = require('mysql');

router.get('/', function(req, res, next) {
    res.render('index', { title: 'Here' });
});

router.post('/manager', function(req, res, next) {
    var connection = mysql.createConnection({
        host        : 'localhost',
        user        : req.body.username,
        password    : req.body.password,
        database    : 'shops'
    });
    connection.connect(function(err){
         if(!err)
             res.render('manager', { title: 'Here' });  
         else
             console.log("Error connecting database ...");  
    });
});

module.exports = router;

In 'index.html' login form

<form id='login' method='post' action='manager'>
    Username<br>
    <input id='username' type='text'><br>
    Password<br>
    <input id='password' type='password'><br>

    <input type='submit' value='Login'>
    <input type='reset' value='Reset'>
</form>

每次我尝试从 html 格式解析数据时,他们 return 'undefined'。我是 node.js 脚本的新手。我做错了什么吗?

您的 <input> 标签缺少 name 属性。添加它们:

<form id='login' method='post' action='manager'>
  Username<br>
  <input id='username' name='username' type='text'><br>
  Password<br>
  <input id='password' name='password' type='password'><br>

  <input type='submit' value='Login'>
  <input type='reset' value='Reset'>
</form>