javascript - node - save file express
req.files no está definido al cargar el archivo con multer (1)
Estoy intentando crear una aplicación Node.js en Express.js 4 que cargue una imagen. Decidí usar el módulo multer
pero no puedo acceder al archivo cargado a través de archivos req.files
. Aquí está el código que estoy usando. Lo restringí a aquellas partes que considero relevantes.
Código de Jade:
form(method="POST", action="createPost", enctype="multipart/form-data")
input(type="file", name="photo")
br
input(type="submit" value="upload")
en 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
}
salida:
files: undefined
body: {}
El archivo se almacena en la carpeta de uploads
pero no puedo acceder a su información en req.files
de req.files
. ¿Alguien puede ayudarme?
Cuando se usa upload.single()
, según la documentación de multer, el archivo resultante debe estar en archivo req.file
, no en req.file
req.files
. Vea el ejemplo en su documento aquí .
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
})
Y, aquí está el documento real para upload.single()
:
.single (nombre de campo)
Acepte un solo archivo con el nombre fieldname. El único archivo se almacenará en el archivo requerido.