【问题标题】:node.js:file upload using multer in sails.jsnode.js:在sails.js中使用multer上传文件
【发布时间】:2017-12-03 22:45:30
【问题描述】:

我想将multer https://www.npmjs.com/package/multer 文件上传包集成到我的sails.js 框架应用程序中,遗憾的是没有可用的教程。

谁能指导一下如何在sails.js中做到这一点?

【问题讨论】:

    标签: node.js file-upload sails.js multer


    【解决方案1】:

    我也遇到了这个问题,在互联网上找不到任何东西,但是在阅读了sails.js 文档后,我想出了一种上传文件的方法。

    在内部sails.js 使用skipper 上传文件,代码非常简单。

    var uploadFile = req.file('user_picture');
    uploadFile.upload({ dirname: filePath }, function onUploadComplete(err, files) {
      if (err) return res.serverError(err);
      //  IF ERROR Return and send 500 error
      console.log(files);
    });
    

    user_picture 是表单中变量的名称。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:
      module.exports.http = {
        middleware: {
          /***************************************************************************
          * *
          * The order in which middleware should be run for HTTP requests. *
          * (This Sails app's routes are handled by the "router" middleware below.) *
          * *
          ***************************************************************************/
          order: [
            'cookieParser',
            'session',
            'fileMiddleware',
            'bodyParser',
            'compress',
            'poweredBy',
            'router',
            'www',
            'favicon',
          ],
          /***************************************************************************
          * *
          * The body parser that will handle incoming multipart HTTP requests. *
          * *
          * https://sailsjs.com/config/http#?customizing-the-body-parser *
          * *
          ***************************************************************************/
          bodyParser: (function () {
            const bodyParser = require('body-parser');
            bodyParser.json();
            bodyParser.urlencoded({ extended: true });
            return bodyParser();
          })(),
          fileMiddleware: (function () {
            const multer = require('multer');
            const upload = multer();
            return upload.fields([{ name: 'images' }, { name: 'profile' }, { name: 'cover' }]);
          })(),
        }
      };
      

      你可以试试这个。它将覆盖船长。

      【讨论】:

      • 谢谢,这对我帮助很大!
      • 你知道如何将其限制为单个文件吗?
      • 像这样:return upload.single('file')
      猜你喜欢
      • 2016-03-06
      • 2020-09-27
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 2016-05-22
      • 2019-07-31
      相关资源
      最近更新 更多