loopbackjs - 使用 enctype ="multipart/form-data"上传表单时的空白数据

标签 loopbackjs strongloop

我有一个有趣的问题。我正在尝试通过

上传表单
<form enctype="multipart/form-data" action="/myendpoint/:id">
    <input type="hidden" name="data" value="mydata" />
    <input type="file" name="formname" />
</form>

...和我的远程方法调用:

Patient.uploadVideo = function(id, mydata, cb) {
    console.log(mydata);
    return cb(null, { id: 123 });
};


MyModel.remoteMethod(
'uploadVideo',
{
  http: {path: '/:id/recording/:recordingid/videos', verb: 'post'},
  accepts: [
            {arg: 'id', type: 'string', required: true},
            {arg: 'mydata', type: 'object', 'http': {source: 'body'}},
           ]
  }
);

不幸的是 body 是空白的

如何获取表单数据?我修改了 server/datasources.json 以包含

"storage": {
    "name": "storage",
    "connector": "loopback-component-storage",
    "provider": "filesystem",
    "root": "./server/storage"
}

仍然没有。

谢谢

最佳答案

因此,不幸的是,在讨论如何上传文件时,文档非常有限。有一个对模块“loopback-component-storage”的引用,必须撕开它才能找到这颗未经加工的钻石。

var storage     =   require('loopback-component-storage');

MyModel.myFunction = function(req, res, options, cb) {
    var storage     =   require('loopback-component-storage');
    var storageService  = storage.StorageService({provider: 'filesystem', root: '/tmp'});

    storageService.upload(req, res, { container: 'upload' }, function(err, data) {
        console.log(data); // this provides a nice object with all of the variables and data wrt the file that was uploaded
        /// ..etc
    });
 };
 MyModel.remoteMethod(
    'myFunction',
    {
        http: {path: '/mypath', verb: 'post'},
        accepts: [
          {arg: 'req', type: 'object', 'http': {source: 'req'}},
          {arg: 'res', type: 'object', 'http': {source: 'res'}}
        ],
        returns: {arg: 'something', type: 'object'}
    }
);

您可以找到 StorageService 的文档 here

关于loopbackjs - 使用 enctype ="multipart/form-data"上传表单时的空白数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177592/

相关文章:

javascript - 环回扩展访问 token 模型会导致问题

node.js - 我想升级 Node 环回应用程序中的所有 npm 包

filter - 在WHERE过滤器上使用OR条件的StrongLoop回送模型查找

javascript - 如何使用环回对 GET 响应进行排序

javascript - 如何使用环回保护服务器 View 和客户端 View

loopbackjs - 环回: return error from beforeValidation hook

angularjs - 在 User.login() 和 User.getCurrent() Angular SDK 中包含角色

vue.js - 登录后如何从客户端的环回 token 中获取用户信息(角色)

javascript - 在环回中使用原型(prototype)创建实例方法时出现问题

rest - 如何在 Strongloop Loopback 中更改 http 状态代码