2016-10-06 15 views
0

からファイルのアップロードは私は2つのモデルがあります。ループバック別のモデル

クローラ: に複数のプロパティがあります。プロパティの1つはscriptで、ユーザーはこのモデルにスクリプトファイルをアップロードできます。

crawler.json

{ 
    "name": "Crawler", 
    "base": "PersistedModel", 
    "idInjection": true, 
    "options": { 
    "validateUpsert": true 
    }, 
    "properties": { 
    "name": { 
     "type": "string", 
     "required": true 
    }, 
    "script": { 
     "type": "string" 
    }, 
    "startCount": { 
     "type": "number", 
     "default": 0 
    }, 
    "created_at": { 
     "type": "date" 
    }, 
    "updated_at": { 
     "type": "date" 
    } 
    }, 
    "validations": [], 
    "relations": {}, 
    "acls": [], 
    "methods": {} 
} 

crawler.js

module.exports = function(Crawler) { 
    Crawler.upload = function (id,req,res,cb) { 
    var container = Crawler.app.models.container; 
    container.getContainers(function(er,containers){ 
     console.log(containers); 
     if (containers.some(function(e){return e.name == 'script';})) { 
     container.upload(req,res,{container:"script"},cb); 
     }else{ 
     container.createContainer({name: "script"}, function(er,c){ 
      container.upload(req,res,{container: "script"},cb); 
     }); 
     } 
    }); 
    Crawler.remoteMethod(
    'upload', 
    { 
     description: 'Uploads a script', 
     accepts: [ 
     { arg: 'id', type: 'string', http: {source: 'path'}}, 
     { arg: 'req', type: 'object', http: { source:'req' } }, 
     { arg: 'res', type: 'object', http:{ source: 'res'} } 
     ], 
     returns: { 
     arg: 'crawler', type: 'Crawler', root: true 
     }, 
     http: {path: '/:id/script',verb: 'post'} 
    } 
); 
}; 

しかし問題は、私はPOST /Crawlers/:id/scriptを実行すると、container.upload(...)機能上のプログラムの凍結で、何も返しません。しばらくすると、タイムアウトにより要求が中止されます。

StackOverflowでthis solutionが見つかりましたが、同じ問題が発生します。

uploadはどうなりますか? uploadに渡されるパラメータは正しいですか?回避策はありますか? loopback-component-storage以外のファイルをアップロードする方法はありますか?

、あなたがこのようなボディパーサーミドルウェアを使用する必要があり、すべての最初の

答えて

0

(私のノードのバージョンは6.7.0とループバック2):BTWファイルは、次のように配列で送信されます

"parse": { 
    "body-parser#json": {}, 
    "body-parser#urlencoded": {"params": { "extended": true }} 
} 

fileObject.files[null]

関連する問題