调用stream.pipe而不刷新页面时,node.js停止工作

调用stream.pipe而不刷新页面时,node.js停止工作,node.js,stream,fs,Node.js,Stream,Fs,我们正在开发一个留言板应用程序,用户可以在其中进行交互。该应用程序允许使用邮件的附件。我们正在使用stream.pipe(fs.createWriteStream)上传附件 我们看到一种奇怪的行为。如果我们只发布一次带有附件的消息,应用程序就可以正常工作。但是,第二次没有页面刷新,应用程序无法发布 在没有附件的情况下重复发布是没有问题的。我们是node.js的新手,正在寻找您的评论 以下是消息发布的代码片段:` if(messg.haveAttached==1){ ss(clien

我们正在开发一个留言板应用程序,用户可以在其中进行交互。该应用程序允许使用邮件的附件。我们正在使用stream.pipe(fs.createWriteStream)上传附件

我们看到一种奇怪的行为。如果我们只发布一次带有附件的消息,应用程序就可以正常工作。但是,第二次没有页面刷新,应用程序无法发布

在没有附件的情况下重复发布是没有问题的。我们是node.js的新手,正在寻找您的评论

以下是消息发布的代码片段:`

if(messg.haveAttached==1){
       ss(client).on('posting', function(stream, data5) {
          var currentdate = new Date();
          var currentTime = currentdate.getTime();
          var filename = (data5.reactionFilePath)+ currentTime + "_" +path.basename(data5.name);
          stream.pipe(fs.createWriteStream(filename)).on('finish', function() {
          messg['attachedFilePath'] = filename;
          Obj.save(messg,socketIOobj,client.id);
          });
       });
    }else{
       reactionData['attachedFilePath'] = '';
       Obj.save(messg,socketIOobj,client.id);
    }` 
错误如下所示:

…/node_modules/socket.io stream/lib/iostream.js:97

此.socket.\u读取(此.id,大小)^

TypeError:无法读取null的属性“\u read”


在第二个附件中,它是否传递if语句if(messg.haveAttached==1){}?是的,每当有人发布时都会调用此代码。on是否打开(“finish”被调用两次??不,此处仅调用一次“finish”。您不能重用已发送的管道数据。并且您不能在流的“end”之后对其进行管道处理。因此,您不能对同一流进行两次处理,并且需要两个流。请检查此链接