1

Multerミドルウェアを使用してExpress JSで画像をアップロードしようとしていますが、最も単純なユースケースを設定しようとするといくつかの問題が発生します.

私が受け取った唯一のエラーは「POST /upload 500」で、POST コールバックが入力されていません..そのため、このケースをデバッグする方法さえわかりません。私のコードは次のとおりです。

app.js:

var express = require('express');
var multer = require('multer');
var upload = multer({ dest: './public/photos/'}); // valid dir

app.post('/upload', upload.single('photo'), function(req, res, next){
  // This callback is never reached. 500 error.
  console.log(req.body);
  console.log(req.files);
});

アップロード.ejs:

<form method='post' enctype='multipart/form-data'>
    <p><input type='text', name='photo[name]', placeholder='Name'/></p>
    <p><input type='file', name='photo[image]'/></p>
    <p><input type='submit', value='Upload'/></p>
</form>

これと現在の npm Multer セットアップ ドキュメントとの違いを見つけることはできません。これを修正する方法だけでなく、なぜこれが機能しないのか、フードの下で何が起こっているのかを知りたいです。

すべてのヘルプ歓迎。ありがとうございました!!!

4

1 に答える 1

1

解決しました!1 つには、入力名が一致していませんでした: upload.single('photo[image]')。

それが500エラーの原因でした。この後、古い req.file パケットを使用したために発生したいくつかの問題があり、最新の multer ドキュメントを参照することで簡単に解決できました。

于 2015-08-18T08:32:07.467 に答える