10

我只是从流星开始。

我找到并添加了“multer”包:

meteor add pfafman:multer

现在,我想知道如何配置流星的服务器端使用。

在我的普通节点应用程序中,我像这样使用它:

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 中的等效服务器代码是什么?

4

1 回答 1

5

pfafman 的 multer 只不过是 npm 的 multer 的一个包装器(如果你仔细阅读它的源代码,你会意识到它真正所做的只是

multer = Npm.require('multer');

然后通过api.export('multer');(他甚至没有包含任何测试用例,让一个演示。)将其导出为全局变量。)

在 express 中,app.use()用于将中间件“层”添加到中间件堆栈。由于 nowmulter已经是一个可以在服务器上任何地方访问的全局变量(在你拥有 之后meteor add pfafman:multer),你可以通过在 express 中调用它来使用它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/
于 2015-09-09T14:35:38.697 回答