如何使用新的控制器操作格式sails.js上传文件

问题描述 投票:0回答:1

有人知道我怎么能使用(输入,存在)sails.js的格式文件上传到一个控制器动作,这是我的尝试:

  module.exports = {


  friendlyName: 'Upload file recording',


  description: 'Upload a recording to AWS',

  inputs: {
    name: {
      required: true,
      type: 'string'
    },
    mimeType: {
      required: true,
      type: 'string'
    },
    recording: {
      type: 'ref'
    }
  },

  exits: {

    noRecordings: {
      responseType: 'no recordings',
      description: `You don't have any recording for this event`,
    },
    serverError: {
      responseType: 'server error',
      description: `Failed to upload the file`,
    }

  },


  fn: async function (inputs, exits) {

    //  fixme    
    inputs.file('recording').upload({
      adapter: require('skipper-s3'),
      key: process.env.AWS_S3_KEY,
      secret: process.env.AWS_S3_SECRET,
      bucket: process.env.AWS_S3_BUCKETNAME
    }, function (err, filesUploaded) {
      if (err) return exits.serverError(err);
      return exits.success({
        files: filesUploaded,
        textParams: req.allParams()
      });
    });

  }
};

上传文件,因为inputs.file是不是一个函数。所以基本上,问题是,我怎么能在这里传递的文件。

任何帮助表示赞赏。

node.js sails.js waterline
1个回答
2
投票

所以,终于找到了解决方案,我只需要使用:

files: ['recording'],

此外:

inputs:
 recording: {
      example: '===',
      required: true
 },

然后操作函数内部:

inputs.recording.upload({
      adapter: require('skipper-s3'),
      key: process.env.AWS_S3_KEY,
      secret: process.env.AWS_S3_SECRET,
      bucket: process.env.AWS_S3_BUCKETNAME
    }, function (err, filesUploaded) {
      if (err) return exits.serverError(err);
      console.log(filesUploaded);
      return exits.success(newFileRecording);
    });
© www.soinside.com 2019 - 2024. All rights reserved.