我一直在尝试使用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)
但错误仍然存在。
我的问题是为什么创建了这么多听众?以及如何以正确的方式回传结果?提前谢谢!