Javascript 如何区分中间件的不同特点?
我用羽毛将文件上传到Mutter库。我试图将逻辑和代码分开,我希望上传的代码不是放在index.js中,而是放在中间件目录中的pdf.js中 以下是我的作品索引.js:Javascript 如何区分中间件的不同特点?,javascript,node.js,express,file-upload,feathersjs,Javascript,Node.js,Express,File Upload,Feathersjs,我用羽毛将文件上传到Mutter库。我试图将逻辑和代码分开,我希望上传的代码不是放在index.js中,而是放在中间件目录中的pdf.js中 以下是我的作品索引.js: 'use strict'; const pdf = require('./pdf'); const record = require('./record'); const records = require('./records'); const handler = require('feathers-errors/hand
'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());
};
以下是upload-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);
}
});
'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();
};
};
和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);
}
});
'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合并到一个文件中不是特别针对特定的羽毛,就像任何其他Express应用程序一样,您可以将代码放入它们自己的模块中:
'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');
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', pdf.upload.single('file'), pdf.process(app));
app.use(notFound());
app.use(logger(app));
app.use(handler());
};
在pdf.js中
:
'use strict';
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')
}
});
exports.upload = 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);
}
});
exports.process = function(app) {
return function(req, res, next) {
if (req.file) {
return res.end('Thank you for the file');
}
return res.end('false');
next();
};
};
学习如何将所有代码组合在一起非常有帮助。不是特别针对特定的羽毛,就像任何其他Express应用程序一样,您可以将代码放入它们自己的模块中:
'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');
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', pdf.upload.single('file'), pdf.process(app));
app.use(notFound());
app.use(logger(app));
app.use(handler());
};
在pdf.js中
:
'use strict';
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')
}
});
exports.upload = 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);
}
});
exports.process = function(app) {
return function(req, res, next) {
if (req.file) {
return res.end('Thank you for the file');
}
return res.end('false');
next();
};
};
学习如何将所有内容组合在一起非常有帮助。谢谢您的回复。你的回答很有帮助。是否可以将所有内容放在一个文件中,这样就不需要使用:
const upload Pdf=require('./upload Pdf')
?这不正是您以前所做的吗?也许是这样,但我的代码不起作用。您的代码工作正常,但包含两个文件:constpdf=require('./pdf')
和constuploadpdf=require('./upload pdf')代码>我想把它放在一个文件中。可能吗?你能给我看看其他的例子吗?constpdf=require('./pdf')
在你的原始代码中。因为它似乎不在任何地方使用,所以可能只需要删除它即可。在您给出的示例中是:app.use('/pdf/:id',uploadPdf.single('file'),pdf(app))代码>似乎需要它。我更新了我的问题,谢谢你的回复。你的回答很有帮助。是否可以将所有内容放在一个文件中,这样就不需要使用:const upload Pdf=require('./upload Pdf')
?这不正是您以前所做的吗?也许是这样,但我的代码不起作用。您的代码工作正常,但包含两个文件:constpdf=require('./pdf')
和constuploadpdf=require('./upload pdf')代码>我想把它放在一个文件中。可能吗?你能给我看看其他的例子吗?constpdf=require('./pdf')
在你的原始代码中。因为它似乎不在任何地方使用,所以可能只需要删除它即可。在您给出的示例中是:app.use('/pdf/:id',uploadPdf.single('file'),pdf(app))代码>似乎需要它。我更新了我的问题,