Как правильно настроить метеорит для работы с node модулем загрузки файлов 'multer'

Я только начинаю с метеор.

Я нашел и добавил пакет 'multer':

meteor add pfafman:multer

Теперь мне интересно, как настроить серверную сторону метеора для использования.

В моем обычном приложении node я использую его следующим образом:

app.use(multer({ dest: './uploads/',
        rename: function (fieldname, filename) {
            return filename+Date.now();
        },
        onFileUploadStart: function (file) {
            console.log(file.originalname + ' is starting ...');
        },
        onFileUploadComplete: function (file) {
            console.log(file.fieldname + ' uploaded to  ' + file.path);
            var fileName = file.name;
            var done=true;
        }
    }));

Что такое эквивалентный серверный код для этого в Meteor?

Ответ 1

pfafman multer - это не что иное, как обертка вокруг npm multer (если вы перейдете через его источник, вы поймете, что все, что это действительно делает, это

multer = Npm.require('multer');

а затем экспортировать его как глобальную переменную через api.export('multer'); (он даже не включил никаких тестовых примеров, пусть идет по демо).

В выражении app.use() используется для добавления слоев промежуточного слоя в стек промежуточного программного обеспечения. Поскольку теперь multer уже является глобальной переменной, доступной где угодно на сервере (после того, как у вас есть meteor add pfafman:multer), вы можете просто использовать ее так, как вы это делаете в выражении, вызвав ее в Meteor.startup:

if (Meteor.isServer) {
  Meteor.startup(function () {
    multer({ dest: './uploads/',
        rename: function (fieldname, filename) {
            return filename+Date.now();
        },
        onFileUploadStart: function (file) {
            console.log(file.originalname + ' is starting ...');
        },
        onFileUploadComplete: function (file) {
            console.log(file.fieldname + ' uploaded to  ' + file.path);
            var fileName = file.name;
            var done=true;
        }
    })
  });
}

Примечание: это создало бы каталог uploads в

YourMeteorProject/.meteor/local/build/programs/server/