Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何区分中间件的不同特点?_Javascript_Node.js_Express_File Upload_Feathersjs - Fatal编程技术网

Javascript 如何区分中间件的不同特点?

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

我用羽毛将文件上传到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/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))似乎需要它。我更新了我的问题,