7

私は Express 3 を使用しており、 text/plain POSTを処理したいと考えています。

Express 3 はconnect の bodyParserを使用するようになりました (古い Express コードは connect に移動したと思います)。bodyParser のドキュメントには、追加のファイル タイプをサポートする方法に関する詳細が記載されています。そして、古いバージョンの Express で text/plain がどのように処理されたかについての優れたブログ投稿を見つけました)。

  • 明示的に接続を要求する必要がありますか (そして、ノードの要求キャッシュに変更されたバージョンを許可する必要がありますか?) または、どこかでエクスプレス経由で接続が公開されていますか?

  • connect.bodyParser には「parse」キーがありません。

Express (接続経由) でテキスト/プレーン POST を処理するにはどうすればよいですか?

4

5 に答える 5

25

https://gist.github.com/3750227

app.use(function(req, res, next){
  if (req.is('text/*')) {
    req.text = '';
    req.setEncoding('utf8');
    req.on('data', function(chunk){ req.text += chunk });
    req.on('end', next);
  } else {
    next();
  }
});

テキストを req.text として追加します

于 2012-09-19T15:22:13.523 に答える
2

json.jsミドルウェアモジュールに似たモジュールを作成し、bufデータを他のものに変換する必要はありません。それをファイルにラップし、plain.js適切な「自分自身を繰り返さないでください」リファクタリングを適用し、接続するためのプルリクエストを送信します。一般的に便利なようです。ただし、便利ではありますが、十分な大きさのリクエストボディは、ある時点でディスクに直接ストリーミングする必要があるため、ノードサーバーのすべてのメモリを消費しないことに注意してください。

于 2012-09-19T15:09:32.227 に答える