Я использую экспресс-маршрутизатор для определения маршрутов, и мне нужно добавить промежуточное программное обеспечение, чтобы некоторые маршруты, просто добавив промежуточное программное обеспечение до функции обратного вызова, выдает следующую ошибку:Экспресс-маршрут с определенным промежуточным программным обеспечением с использованием Express.Router()
Error: Route.post() requires callback functions but got a [object Object]
Я работаю с папками, как модули, мой модуль загрузки, а вот index.js:
module.exports = (function() {
var express = require('express'),
router = express.Router(),
multer = require('multer'),
transaction_docs = multer({ dest: './client/public/docs/transactions/' }),
product_images = multer({ dest: './client/public/img/products' }),
upload = require('./upload');
router.route('/upload/transaction-docs')
.post(transaction_docs, upload.post);//If I take off transaction_docs theres no error
router.route('/upload/product-images')
.post(product_images, upload.post);//Same as above
return router;
})();
а вот upload.js:
module.exports = (function() {
function post(request, response) {
var filesUploaded = 0;
if (Object.keys(request.files).length === 0) {
console.log('no files uploaded');
} else {
console.log(request.files);
var files = request.files.file1;
if (!util.isArray(request.files.file1)) {
files = [ request.files.file1 ];
}
filesUploaded = files.length;
}
response.json(
{
message: 'Finished! Uploaded ' + filesUploaded + ' files.',
uploads: filesUploaded
}
);
}
return {
post: post
}
})();
насчет замены module.exports с exports.post и регулируя остальную часть кода соответственно –
Почему вы используете самоосуществляющуюся функцию? – undefined
@ Vohuman Я видел пример, используя его так, это плохо? –