使用mssql流式查询结果

时间:2016-08-05 14:44:14

标签: sql-server node.js express

我一直在尝试使用npm上的mssql包连接到SQL Server并回送查询结果。问题在于流媒体。我试图像这样遵循API文档https://www.npmjs.com/package/mssql#streaming

'use strict';
const express = require('express');
const app     = express();
const sql     = require('mssql');
const sts     = require('string-to-stream');

let connectStr1 = "***";
let queryStr = "***";
app.get('/', (req, res) => {
    sql.connect(connectStr1)
    .then(() => {
        let request = new sql.Request();
        request.stream = true;
        request.query(queryStr);
        request
        .on('row', (row) => {
            sts(row).pipe(res);
        }).on('error', (err) => {
            res.end(JSON.stringify(err));
        }).on('finish', () => {
            res.end();
        });


    }).catch((err) => {
         res.end(JSON.stringify(err));
    });
});
app.listen(4000, () => console.log('Listening to port 4000'));

错误读取

  

检测到可能的EventEmitter内存泄漏。 11名听众完成了补充。

在此之后我尝试了

request.setMaxListener(Infinity)

但错误仍然存​​在。

我的问题是为什么创建了这么多听众?以及如何以正确的方式回传结果?提前谢谢!

0 个答案:

没有答案