SQL Server一次调用两次返回结果?

阿赫曼

我已将SQL Server数据库连接到简单的node.js服务器。运行代码时,我同时得到了记录集和记录集。它们本质上都包含相同的数据。我可以使用它,但是似乎很多余,只是精确地调用我需要的记录会更整洁。

我希望得到一个清晰的ELI5解释,因为mssql我认为npm文档有些混乱。

这是下面的代码:

const express = require('express');
const cors = require('cors');
const sql = require('mssql');
const app = express();
const sqlServer = 'hasea\\SQLExpress'

const selectAllQuery = 'SELECT * FROM dbo.users';
const config = {
    user: 'nbar',
    password: 'nb',
    server: sqlServer,
    database: 'nirvanaBar'
}

// SQL Select function
function DBconn(query, res) {

    sql.connect(config, function (err) {
        if (err) console.log(err);
        var request = new sql.Request();

        request.query(query, function (err, row) {
            if (err) console.log(err)
            res.json({
                data: row
            })
        })
    })
}
app.use(cors());

app.get('/', (req, res) => {
    res.send("Hello from the server")
});

app.get('/users', (req, res) => {
    //query?
    //var andrew = "select * from dbo.users where firstName = 'Andrew';"
    var matt = "select * from dbo.users where firstName = 'Matt';"
    //DBconn(selectAllQuery,res);
    DBconn(matt, res);

})
app.listen(4000, () => {
    console.log(`Server started on port 4000`)
})

结果:

在此处输入图片说明

我可以看到它以前已经提出过,但是我不了解发生了什么,文档也没有提供很多有关为什么会这样的信息。我可以使用数据,我只是认为同时返回记录集和记录集比较整洁。

提前致谢

RedJandal

这是mssql的预期行为,请在此处查看文档当您执行多个语句时,它允许您拥有多个记录集

您会发现实际上有2个属性

记录集(单数)和记录集(复数)

记录集(单数)是指执行的第一条语句。就您而言,您可以使用此

记录集(复数)是一个记录集数组,在您的情况下,由于仅运行一条语句,因此数组中将只有一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章