1

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);

オブジェクトは常に空です。

私が忘れたものについて何か考えはありますか?

4

3 に答える 3

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
于 2013-02-09T23:33:55.933 に答える
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.post ではなく app.get から値を取得しようとしたことです。

于 2013-02-10T01:55:17.380 に答える
1

次の行を入れ替えてみてください。

app.use(express.bodyParser());
app.use(express.methodOverride());
于 2013-02-10T00:58:21.917 に答える