var express = require('express'); var router = express.Router(), multer = require('multer'); var uploading = multer({ dest: __dirname + '../public/uploads/', }) router.post('/upload', uploading, function(req, res) { console.log('uploaded'); }) Recibí un error Route.post() requires callback functions de llamada después de un tutorial de carga de fotos aquí. ¿Tal vez sea por la nueva versión de Express? Recuerdo que arriba está la forma en que ponemos el medio en una ruta, pero ¿por qué aquí no funciona?
Basándose en los documentos de multer , parece que tiene que usar uploading.single() o uploading.array() como su middleware. Este ejemplo se obtiene del uso de ejemplo en los documentos de multer:
var upload = multer({ dest: 'uploads/' }) 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 })var express = require('express'); var router = express.Router(), multer = require('multer'); var uploading = multer({ dest: __dirname + '../public/uploads/', }) var type = uploading.single('file'); router.post('/upload', type, function(req, res) { console.log('uploaded'); })