0

req.body を使用するときに、express2.js を使用しています。未定義または空の {} を取得します。

exports.post = function (req: express3.Request, res: express3.Response) {
    console.log(req.body);    
});

次の構成があります。

app.use(express.bodyParser());
app.use(app.router);

app.post('/getuser', routes.getuserprofile.post);

リクエストの本文は XML で、正しいリクエスト ヘッダーを確認しました。

4

2 に答える 2

1

あなたがXMLを持っていた部分を見逃しました。req.body はデフォルトでは解析されないと思います。

Express 2.x を使用している場合は、おそらく@DavidKrisch によるこのソリューションで十分です (以下にコピー)。

// This script requires Express 2.4.2
// It echoes the xml body in the request to the response
//
// Run this script like so:
// curl -v -X POST -H 'Content-Type: application/xml' -d '<hello>world</hello>' http://localhost:3000
var express = require('express'),
    app = express.createServer();

express.bodyParser.parse['application/xml'] = function(data) {
    return data;
};

app.configure(function() {
    app.use(express.bodyParser());
});


app.post('/', function(req, res){
    res.contentType('application/xml');
    res.send(req.body, 200);
});

app.listen(3000);
于 2013-07-25T15:23:22.267 に答える
0

express.bodyParser()が XML をサポートしているとは思えません。URL エンコードされたパラメーターと JSON のみをサポートします。

から: http://expressjs.com/api.html#middleware

bodyParser()

JSON、urlencoded、およびマルチパート リクエストをサポートするリクエスト ボディ解析ミドルウェア。

于 2013-07-25T16:22:00.783 に答える