Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点流停止,不会触发任何错误或事件_Javascript_Node.js_Stream - Fatal编程技术网

Javascript 节点流停止,不会触发任何错误或事件

Javascript 节点流停止,不会触发任何错误或事件,javascript,node.js,stream,Javascript,Node.js,Stream,我正在从数据库中读取100k数据。我使用@database/pg npm模块在可读流中读取它。下面是代码片段 /* eslint-disable new-cap */ const { Transform } = require('stream'); const _ = require('lodash'); const { sql } = require('@databases/pg'); const { Op, fn, col } = requi

我正在从数据库中读取100k数据。我使用@database/pg npm模块在可读流中读取它。下面是代码片段

    /* eslint-disable new-cap */
     const { Transform } = require('stream');
     const _ = require('lodash');

     const { sql } = require('@databases/pg');
     const { Op, fn, col } = require('sequelize');
     const { chunk } = require('lodash');
     const db = require('../temp/database');
     const sequelize = require('../models/index.js');

     const Logger = require('../utils/logger');

      const logger = new Logger();

     const readExpert = new Transform({
        readableObjectMode: true,
       writableObjectMode: true,

    transform(chunk, encoding, callback) {
    logger.log(`Getting all the experts`, 'info');
    sequelize['CleanExpert']
      .findAll({ });
      }
    callback();
)}


class ConsolidationController {
  static async addData(req, res) {
    try {

      const read = db.queryNodeStream(
        some query
      );

      read.on('data', (chunk) => {
        const buffer = readExpert.write(chunk);
        if (!buffer) {
          logger.log(
            `Buffer is full and read stream is ${read.isPaused()}`,
            'info'
          );
          read.pause();
          logger.log(`Now read stream is ${read.isPaused()}`, 'info');
        }
      });

      read.on('error', (err) => {
        console.log('error while reading', err);
      });
      read.on('finish', (err) => {
        console.log('finish reading');
      });

      readExpert.on('drain', () => {
        logger.log(
          `write stream is drained and read stream is ${read.isPaused()}`,
          'info'
        );
        read.resume();
        logger.log(
          ` now read stream is ${read.isPaused()} start writing again`,
          'info'
        );
      });

      readExpert.on('end', () => {
        console.log('inside read expert end');
      });

      readExpert.on('error', (err) => {
        console.log('Error..........................', err);
      });
      readExpert.on('finish', () => {
        console.log(' read  Finished');
      });
      readExpert.on('close', () => {
        console.log(' read  close');
      });
    } catch (error) {
      console.log(error);
    }

    return res.send('ok');
  }
}

module.exports = ConsolidationController;
现在,流在一组特定的数据之后停止运行,但是我的读取流会发出finish事件,但是readExpert不会发出任何类型的事件,它只是停止没有错误什么都没有