我有以下App.js
:後的NodeJS方法 - req.body.variable未定義
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>
當我值輸入到文本框,然後按提交,我post方法被擊中('/insert_movie')
。然而的movieName是不確定的,不僅如此,但req.body
是{}
能向我解釋的人我在做什麼錯在這裏,因爲我已經經歷了許多解決了這個網站上。但是他們都指向身體解析器被錯誤地設置,我試過以下內容:
- app.use(bodyParser.urlencoded({extended:true}));
- app.use(bodyParser.urlencoded());
- app.use(bodyParser.json());
這些都不能解決我的問題。
您需要name'屬性添加'來輸入元素。 E.G: '' – Rowland
我需要睡一會兒!錯誤的ID名稱...睡前的時間! 謝謝@Rowland –
不用擔心。我會將其添加爲答案,您可以接受它。 – Rowland