画像をアップロードするNode.jsアプリケーションをExpress.js 4で構築しようとしています。 multer
モジュールを使用することにしましたが、req.files
経由でアップロードされたファイルにアクセスできません。ここに私が使用しているコードがあります。私は、関連があると思われる部分に限定しました。
翡翠コード:
form(method="POST", action="createPost", enctype="multipart/form-data")
input(type="file", name="photo")
br
input(type="submit" value="upload")
routes/admin.js:
var express = require('express');
var multer = require('multer');
var router = express.Router();
var upload = multer({dest: './uploads/'});
router.post('/createPost', upload.single('photo'), function(req, res, next) {
console.log('files:', req.files);
console.log('body:', req.body);
// more code
}
出力:
files: undefined
body: {}
ファイルはuploads
フォルダーに格納されていますが、req.files
の情報にアクセスできません。誰か助けてもらえますか?
upload.single()
を使用する場合、multerのドキュメントに従って、結果のファイルは_req.file
_ではなく_req.files
_にある必要があります。例 こちらのドキュメント を参照してください。
_app.post('/profile', upload.single('avatar'), function (req, res, next) {
// req.file is the `avatar` file
// req.body will hold the text fields, if there were any
})
_
そして、これがupload.single()
の実際のドキュメントです。
。single(fieldname)
Fieldnameという名前の単一のファイルを受け入れます。単一のファイルはreq.fileに格納されます。