node.js - 将流式处理与 Node 和 mssql 结合使用

标签 node.js sql-server express

我搜索了很多但找不到将来自 mssql 的流用于 Node 的可靠示例

数据控制者

//Data controller used to query and update the database
var sql = require('mssql');

//Config data for database connection
var config = {
    user: '',
    password: '',
    server: '',
    stream: true,
    database: ''
};  

module.exports.queryDatabase = function(req, res, sqlQueryString) {
    var contactList = [];
    var connection = new sql.Connection(config, function(err) {
        if(err) {
            console.log(err)
        } else {
            var request = new sql.Request(connection);
            request.query(sqlQueryString);
            request.on('row', function(row) {
            });
    connection.close();
        }
    });
};

页面渲染 Controller :

var data = require(./data);
    module.exports.renderInvestorsPage = function(req, res) {
    buildQuery = 'SELECT contact_info.last_name, \
                  contact_info.first_name, \
                  contact_info.contact_key, \
                  contact_info.work, \
                  contact_info.home, \
                  contact_info.email \
                  FROM contact_info \
                  WHERE contact_info.investor = 1';
    investorResults = data.queryDatabase(req, res, buildQuery);
    console.log(investorResults);
    res.render('investors', {title: 'Investors'});
};

查看:

extends layout

block content
    div.row
        div.col-lg-12
        h1.page-header #{title}
    div.row
        table
            tr
                th Last Name
                th First Name
                th Work Phone
                th Home Phone
                th Email
            tbody
                each investor in investorResults
                    td= investor.last_name
                    td= investor.first_name
                    td= investor.work
                    td= investor.home
                    td= investor.email

我很困惑为什么我不能以这种方式使用查询结果。看来问题必须与使用 mssql 中的流选项有关,但我不情愿地不得不使用流,因为我正在处理 10,000 个联系人...

最佳答案

如果要显示此数据,请在存储过程中实现分页,然后抓取数据 block 以显示在屏幕上。您应该一次返回那么多记录的唯一原因是为了生成报告或导出。报告格式假定打印或导出的可能性很大。

关于node.js - 将流式处理与 Node 和 mssql 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37903938/

相关文章:

node.js - 为什么 "npm install"删除了node_modules中的所有包?

node.js - 带有 node.js 后端的 extjs?

javascript - 为什么我的签名 URL 会出现 403 错误?

sql - 如何查找哪些外键引用表上的索引

javascript - 使用 Node Js 服务器运行 Angular2 应用程序

node.js 和 S3/使用 knox 写入 s3

sql-server - "Create Statistics"在 SQL Server 2005 中起什么作用?

sql-server - 在 Azure SQL 中检索服务器状态数据的权限

javascript - NodeJS 异步数据库获取服务器卡住

javascript - jquery $.ajax 给出 404 未找到。我将 Node.js 与 Express 一起使用