binary.js BinaryStream.writestream在节点服务器上不可写

我正在上传节点服务器上传一个文件后,我得到错误

我正在使用节点version v0.10.48

参考代码摘自https://github.com/rajkissu/binaryjs-upload-stream

错误:stream不可写入
在BinaryStream.write(/node_modules/binaryjs/lib/stream.js:84:11)
在/src/K/Cli/upload/lib/media.js:120:36
在ChildProcess.exithandler(child_process.js:742:7)
在ChildProcess.emit(events.js:110:17)
在maybeClose(child_process.js:1015:16)
在Process.ChildProcess._handle.onexit(child_process.js:1087:5)

我无法find如何解决这个问题。

问题是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}); } }); } }); } 

我发现你的问题的解决scheme,使用选项,同时创build文件对象如下

 var options = {flags: 'w', encoding: 'utf8',fd: null,mode: '0666'}; var file = fs.createWriteStream(uploadPath + '/' + meta.name,options); 

节点参考https://nodejs.org/docs/v0.12.5/api/fs.html#fs_fs_createwritestream_path_options

createWriteStream编码选项https://nodejs.org/docs/v0.12.5/api/fs.html#fs_fs_writefile_filename_data_options_callback

Interesting Posts