Javascript Nodejs post方法-req.body.variable未定义

Javascript Nodejs post方法-req.body.variable未定义,javascript,node.js,express,Javascript,Node.js,Express,我有以下App.js: var express = require('express'), app = express(), engines = require('consolidate'), MongoClient = require('mongodb').MongoClient, assert = require('assert'), bodyParser = require('body-parser') app.engine('html', engines.nunjucks); app.

我有以下
App.js

var express = require('express'),
app = express(),
engines = require('consolidate'),
MongoClient = require('mongodb').MongoClient,
assert = require('assert'),
bodyParser = require('body-parser')

app.engine('html', engines.nunjucks);
app.set('view engine', 'html');
app.set('views', __dirname + '/views');

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

app.post('/insert_movie', function (req, res) {

    var movieName = req.body.movie_name;

    console.log(movieName);

});

// No route matching:
app.use(function (req, res) {
    res.sendStatus(404);
});

var server = app.listen(3000, function () {
    var port = server.address().port;
    console.log('Express server listening on port %s.', port);
});
我的html页面:

<h1> Add new movies</h1>

<form action="/insert_movie" method="POST">

    <input type="text" id="movie_name">
    <input type="text" id="movie_year">
    <input type="text" id="movie_imdb">

    <input type="submit" value="Submit" />

</form>
添加新电影
当我在文本框中输入值并按submit时,我的post方法被点击
('/insert_movie')
。然而,movieName不仅没有定义,而且
req.body
{}

有人能解释一下我做错了什么吗?因为我在这个网站上浏览了很多解决方案,但是他们都指出主体解析器的设置不正确,我尝试了以下方法:

  • use(bodyParser.urlencoded({extended:true}))
  • use(bodyParser.urlencoded())
  • use(bodyParser.json()) 这两种方法都不能解决我的问题。

    尝试使用此方法

    var bodyParser = require('body-parser');
    
    app.use(bodyParser.urlencoded({
      limit: '500mb',
      extended: true,
      parameterLimit: 50000
    }));
    app.use(expressValidator());
    app.use(bodyParser.json());
    
    试着用这个

    var bodyParser = require('body-parser');
    
    app.use(bodyParser.urlencoded({
      limit: '500mb',
      extended: true,
      parameterLimit: 50000
    }));
    app.use(expressValidator());
    app.use(bodyParser.json());
    

    您需要向输入元素添加
    name
    属性。这是
    主体解析器
    库解析表单所需的内容之一

    <h1> Add new movies</h1>
    
    <form action="/insert_movie" method="POST">
      <input type="text" name="movie-name" id="movie_name">
      <input type="text" name="movie-year" id="movie_year">
      <input type="text" name="movie-url" id="movie_imdb">
      <input type="submit" value="Submit" />
    </form>
    
    添加新电影
    
    您需要向输入元素添加
    name
    属性。这是
    主体解析器
    库解析表单所需的内容之一

    <h1> Add new movies</h1>
    
    <form action="/insert_movie" method="POST">
      <input type="text" name="movie-name" id="movie_name">
      <input type="text" name="movie-year" id="movie_year">
      <input type="text" name="movie-url" id="movie_imdb">
      <input type="submit" value="Submit" />
    </form>
    
    添加新电影
    
    使用multer中间件处理请求正文

    你可以看到npm的官方博客

    使用multer中间件处理请求正文

    你可以看到npm的官方博客

    您需要向输入元素添加
    name
    属性。例:
    我需要睡一觉!把id错当成名字了。。。睡觉时间到了!谢谢@Rowland别担心。我将添加它作为答案,您可以接受它。您需要向输入元素添加
    name
    属性。例:
    我需要睡一觉!把id错当成名字了。。。睡觉时间到了!谢谢@Rowland别担心。我会加上它作为答案,你可以接受。