我正在尝试使用Express请求后获取一些POST参数,但我无法获取数据。这是我的app.configure
:
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(gzippo.staticGzip(__dirname + '/public'));
app.use(gzippo.compress());
});
在POST HTTP请求之后,我尝试在控制台中输出它:
console.log(req.body);
对象始终为空。
我对忘记了什么有任何想法?
答案 0 :(得分:4)
您必须使用 req.body 来检索身体参数。您也必须在HTML代码中使用表单。
示例:
<form action="myaction" method="post">
<input name="address" id="address" type="text" />
<button type="submit" value="Send" />
</form>
...
以您的形式:
var address = req.body.address; //get address value
答案 1 :(得分:3)
我唯一需要做的就是从这段代码中添加body解析器和app.post行:
app.use(express.static(__dirname + '/public'))
.use(express.favicon())
.use(express.bodyParser())
.use(express.cookieParser(COOKIE_P))
.use(express.session());
app.post('/',function(req,res){
res.writeHead(200,{"content-type":"text/html;charset=UTF8;"});
res.end("POST");
console.log(req.body);
});
我的失败是尝试从app.get而不是app.post获取值。
答案 2 :(得分:1)
尝试交换以下行:
app.use(express.bodyParser());
app.use(express.methodOverride());