問題タブ [busboy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - busboy が定義されていません connect-busboy with expres
私はexpressjs 4.12.3で作業しており、connect-busboyに接続しようとしていますが、リクエストに応じてreq.busboyオブジェクトを取得できません。「未定義」と表示されます私の簡単なコードは次のとおりです:
busboy モジュールを初期化し、それをアプリに割り当て、content-length: "5276" content-type:'application/x-www-formurlencoded' をヘッダーとして送信しました。
私は何を間違っていますか??
node.js - busboy (nodejs) を使用して複数のファイルをアップロードし、関連する応答オブジェクトを発行する
busboy モジュールを使用してファイルをアップロードしています。1つのファイルに対して非常にうまく機能します。ただし、複数のファイルをアップロードしようとすると、次のエラーがスローされます。
スローエラーの理由はわかっていますが、解決策がわかりません。以下は私のコードスニペットです。
次のコード行がエラーをスローしていることはわかっています。これは、複数のファイルの場合、このコード行が 2 回実行されてエラーが発生するためです。
「 」の複数のイベントを追跡req.busboy.on('file', function (fieldName, file, fileName)
して、すべてのファイル処理が終了したら、私だけが応答を送信するようにするにはどうすればよいですか?
助けてください。
javascript - busboy を使用して Express アプリの bodyParser() から移行しますか?
Nodejs の初心者である私は、優れたセキュリティ プラクティスを実際に読むことなく、単純なアプリの作成に飛びつきました。bodyParser()
マルチパート ファイルを使用した DOS 攻撃が可能になるため、すべてのルートを使用することは実際には悪いことであることがわかりました。
推奨される修正方法は、ルートに応じて特定のモジュールのみをロードすることです。つまり、マルチパート ファイルのアップロードの場合は、 を使用しますmultipart
。ファイルのアップロードを伴わない通常の POST (つまり、テキスト フォームの送信) の場合は、 を使用しますexpress.json(), express.urlencoded()
。
または、 busboy をconnect-busboyとともに使用することもできます。しかし、私が混乱しているのは、マルチパート データを処理する必要があるルートと処理しないルートを指定する方法です。そうでなければ、私は と同じ問題を抱えていませんか?bodyParser
さらに、busboy
ドキュメントはそれが処理しないと言いますGET
:
params
そのため、 で解析する方法についてさらに混乱していGET
ます。bodyParser
でデータにアクセスできるように、これを行うと思いますreq.params
。
たとえば、次の単純なアプリでからbodyParser()
に移行するにはどうすればよいですか。busboy/connect-busboy
javascript - Nodeとconnect-busboyと一緒にフォームテキストフィールドでユーザーファイルのアップロードを処理しますか?
Nodejs、sequelize、および connect-busboy でファイルのアップロードを処理し、テキスト フィールド/データベースへの挿入を検証する標準的な方法は何ですか?
たとえば、エンドユーザーが名前、電子メールを入力し、いくつかのファイルをアップロードする必要があるユーザー プロファイル フォームがあるとします。
ユーザーがフォームを送信すると、サーバー上の手順は次のようになります。(1) テキスト フィールドを検証する (2) データベースのユーザー テーブルに保存する (3) ファイルをディスクに保存する (4) ユーザー行をファイルパスで更新する
半疑似コードでは、次のようなものを想像しています。
connect-busboy
しかし、このロジック フローを次のように適応させる方法がわかりません。
私は正しい考えを持っていますか?もしそうなら、どうすれば検証、ユーザーの作成/更新をに適応させることができconnect-busboy
ますか?
私が離れている場合、データベースの検証、ユーザーフィールドの作成/更新、およびユーザーのアップロードを含む標準的な方法は何ですか?
javascript - busboy はアップロードされたファイルを受信しません
私のフォームはシンプルです。ng-flowを使用してファイルのアップロードを処理します。
イメージが選択されるng-flow
と、ターゲット ルートに POST が実行されます。リクエストペイロードには次のようなものがたくさんあるため、画像が送信されたようです。
画像はあまり大きくありません (~1MB)
nodejs 側 (express を使用):
req.busboy
物でいっぱいのオブジェクトを返しますがreq.busboy.on('file'...
、req.busboy.on('field'...)
決してトリガーしません。
busboy が私の文字列と画像を見ないのはなぜですか?
node.js - MIME タイプが無効な場合、busboy でアップロードとリダイレクトを停止する方法は?
私は Node.js の初心者で、Express と Busboy-Connect を使用して、wav ファイルのみの単純なファイル アップロード フォームを作成しています。これが私がやろうとしていることです: - アップロードを開始します - MIME タイプが wav でない場合は、エラー ページにリダイレクトします - そうでない場合: サーバーにファイルを書き込み、リダイレクトします。
MIME タイプが有効な場合はすべて正常に動作しますが、そうでない場合はリダイレクトできず、ブラウザがハングアップして最終的にタイムアウトになります。私の理解では、ブラウザはアップロードが完了するのを待っているためリダイレクトしたくないということですが、js コード内でアップロードをキャンセルするにはどうすればよいですか? 問題を回避し、ファイルを書き込んで、それが適切な MIME タイプでない場合は削除することもできますが、それを行うのは少しばかげていると思います。それを停止してすぐにリダイレクトするイベントをトリガーする方法を見つけたいと思います。これが私のアプリコード(のスニペット)です:
誰かが私を正しい方向に向けることができますか? ご協力ありがとうございました !
node.js - アップロードされたファイルを HTTP リクエストにストリーミングする
私の目標は、アップロードされたファイルを受け入れ、Wistia Upload APIを使用してWistiaにストリーミングすることです。HTTP リクエストにフィールドを追加できるようにする必要がありますが、ファイルがディスクにアクセスすることは望ましくありません。Node、Express、Request、およびBusboyを使用しています。
以下のコードには 2 つのconsole.log
ステートメントがあります。最初の戻り値[Error: not implemented]
と 2 番目の戻り値[Error: form-data: not implemented]
。Node でのストリーミングは初めてなので、おそらく根本的に間違ったことをしているのでしょう。どんな助けでも大歓迎です。
node.js - node.js 、 needle 、 busboy/multer を使用して、あるサーバーから別のサーバーにファイルを投稿します
小さなイメージをあるサーバーから別のサーバー (両方とも実行中のノード) に移動したいと考えています。探しても、なかなか見つからない。この投稿は未回答のままです。
実験を始めたとき、最初のサーバーに次のように書きました。
この部分は、同じサーバーに (fs.writeFile を使用して) データを書き込んで img を再作成できるため、機能しているようです。
他のサーバーで投稿を処理しようとしているときに、問題が発生しました。
サーバー2:
このようにして、ファイルに空のオブジェクトを取得し、本文に以下を取得します。 { 'headers[Content-Type]': 'application/x-www-form-urlencoded', 'headers[Content-Length]': '45009' }
バスボーイを代替手段として使用できると思いますが、機能しません。アドバイス、チュートリアルは大歓迎です。
javascript - Node Busboy のアップロード中止
busboyを使用して、アップロードしたファイルをバッファーに書き込み、そのファイルに対していくつかの検証 (幅、高さ、ファイルサイズ) を実行しています。アップロードに何か問題があることがわかったら、ストリームを中止/停止する方法を一生理解できません。
たとえば、許可したい最大ファイルサイズが 500kb の場合、アップロード中のバッファのサイズを追跡し、サイズが 500kb を超える場合は中止します。
これが私のコードの簡略版です。