1
我用羽毛上傳文件庫。我嘗試從代碼中分離出邏輯,我想把上傳代碼放在index.js中,但在我的情況下,放在中間件目錄下的pdf.js中。如何分隔羽毛中間件?
下面是我的作品index.js:
'use strict';
const pdf = require('./pdf');
const record = require('./record');
const records = require('./records');
const handler = require('feathers-errors/handler');
const notFound = require('./not-found-handler');
const logger = require('./logger');
const uploadPdf = require('./upload-pdf');
module.exports = function() {
// Add your custom middleware here. Remember, that
// just like Express the order matters, so error
// handling middleware should go last.
const app = this;
app.use('/rekord/:id.html', record(app));
app.use('/rekordy.html', records(app));
app.use('/pdf/:id', uploadPdf.single('file'), pdf(app));
app.use(notFound());
app.use(logger(app));
app.use(handler());
};
這裏被上傳-pdf.js文件:
var multer = require('multer')
var storagePdf = multer.diskStorage({
destination: 'public/pdf',
filename: function (req, file, cb) {
var id = req.params.id
cb(null, id+'.pdf')
}
});
module.exports = multer({
storage: storagePdf,
fileFilter: function (req, file, cb) {
if (file.mimetype !== 'application/pdf') {
return cb(null, false, new Error('I don\'t have a clue!'));
}
cb(null, true);
}
});
而且pdf.js文件:
'use strict';
module.exports = function(app) {
return function(req, res, next) {
if (req.file) {
return res.end('Thank you for the file');
}
return res.end('false');
next();
};
};
我會喜歡將upload-pdf.js和pdf.js合併爲一個文件
謝謝你的回覆。你的答案是有幫助的。是否有可能將所有文件放在一個文件中以便不需要使用:'const upload Pdf = require('./ upload-pdf')'? – SeaDog
這不就是你以前做的事嗎? – Daff
也許是這樣,但我的代碼不起作用。你的代碼工作正常,但你包含兩個文件:'const pdf = require('./ pdf')'和'const uploadPdf = require('./ upload-pdf');'我想把它放到一個文件中。可能嗎?你能告訴我其他的例子嗎? – SeaDog