2017-09-19 15 views
1

私は、アップロード、私は取得していますエラーbinary.js BinaryStream.writeストリームは、ノードサーバー上の書き込み可能ではありません

I am using node version v0.10.48

Reference code picked from https://github.com/rajkissu/binaryjs-upload-stream

Error: Stream is not writable
at BinaryStream.write (/node_modules/binaryjs/lib/stream.js:84:11)
at /src/K/Cli/upload/lib/media.js:120:36
at ChildProcess.exithandler (child_process.js:742:7)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)

私はどのように解決する方法を見つけることができませんした後、一つのファイルのため、アップロード・ノード・サーバーに取り組んでいますこの。

問題が1%の場合コードはconsole.log('Debug 4)になり、stream.write({end: true});を実行するとノードサーバーが停止します。つまり、スローされたエラーが処理されないため、ゲートウェイが不正です。

フロントエンドでノードサーバーからのデータを使用してコンテンツIDを読み取り、設定を完了しましたが、ノードサーバーが停止してノードサーバーからコンテンツIDを取得できません。

bs = new BinaryServer({ port: 9004 }); 

bs.on('connection', function (client) { 
    client.on('stream', function (stream, meta) { 
     upload(stream, meta); 
    }); 
}); 

function upload(stream, meta) { 
    var file = fs.createWriteStream(uploadPath + '/' + meta.name); 
    stream.pipe(file); 
    stream.on('end', function() { 

     // console.log(__dirname); 
     var cli_base=__dirname+'/../../'; 

     var cmd = '<upload systme cmd>'; 
     console.log('Uploading End and running command ' + cmd);   
     try { 
      stream.write({uploaded: true}); 
     }catch (e) { 
      console.log('Debug 3, Streem On End Event : '+e.message,meta); 
      // stream.write({end: true}); 
     } 
     if(!meta.hasOwnProperty('executed')){ 
      meta.executed=true; 
      child = exec(cmd, function (error, stdout, stderr) { 
       try{ 
        console.log(error, JSON.parse(stdout), stderr); 
        var command_output = JSON.parse(stdout); 

        if(command_output.hasOwnProperty('content_id')){ 
         stream.write({end: true, content_id: command_output.content_id,files:command_output.file}); 
         console.log(command_output.content_id); 
        } 
       }catch (e) {       
        console.log('Debug 4, Streem On End Event : '+e.message,meta,child); 
        stream.write({end: true}); 
       } 
      }); 
     } 

    }); 
} 
+1

の下にファイルオブジェクトを作成しながら、この問題は、ノードのバージョンを使用することに起因する可能性が!ノードのバージョンを確認し、質問を追加してください。 –

+0

@MuneerAlam私はこのためにノードバージョン 'v0.10.48'を使用しています。 –

+1

@Ramrantan Guptaの問題は、ノードのバージョン(> 0.12.X)または一部のLTSバージョンを更新できる場合に解決できます。 –

答えて

関連する問題