web-dev-qa-db-ja.com

Express.jsアプリでファイルをアップロードする

Node.js、Express.js、Mongodbを組み合わせたモバイルクライアントアプリケーション用のRESTful APIを開発しています。現在、ユーザープロフィール画像のアップロードを処理しようとしていますが、express.appがmultipart/form-を処理できるようにする「multer」(express.jsチーム自身が推奨するモジュール)と呼ばれるモジュールを見つけました。データ要求。次に、アプリとさらにアップロード機能をテストする必要がありますが、http-formリクエストをシミュレートすることはできません(postman chrome plugin)を使用します。Multerはこのエラーを返します。

[エラー:マルチパート:境界が見つかりません]

実際、(動作する)http-formリクエストをカスタムhttpリクエストと比較すると、2番目のリクエストにはBoundaryヘッダープロパティがありません。

境界プロパティとは何ですか?

23
Luca Marzi

マルチパート形式の境界は、テキストデータとバイナリデータを区切る区切り文字列を示します。郵便配達員でこれを行うことができますが、ファイルとテキストの両方を送信していないように聞こえるので、郵便配達員はデフォルトで通常のフォームを使用する場合があります。次のようなものを見ますか?

postman-form-multipart

Postmanでプレビューをクリックすると、Content-typeヘッダーと本文に境界が表示されます。

13
Plato

Postmanを使用している場合は、ヘッダー「Content-type」:「multipart/form-data」を削除してみてください。私はそれを削除し、今では動作します。

57
Xelz

ソリューション:

1)クライアントで_content-type_を指定しないでください

2)convention(imageUpload)の命名をフィールド名と同じupload.single('imageUpload')で使用する

7