使用multer上传文件时,req.files未定义
我正在尝试在Express.js 4中构build一个上传图像的Node.js应用程序。 我决定使用multer
模块,但不能通过multer
访问上传的文件。 这是我正在使用的代码。 我将其限制在那些我认为相关的部分。
玉代码:
form(method="POST", action="createPost", enctype="multipart/form-data") input(type="file", name="photo") br input(type="submit" value="upload")
在路线/ 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()
的实际文档:
。单(字段名)
接受名称为fieldname的单个文件。 单个文件将被存储在req.file中。