首页 > 解决方案 > 节点JS | 多个连接连接到 API 时 MS API 面临问题

问题描述

我只是想尽可能清楚,所以我有一个 MS SQL nodejs API,通过它我与我的 android 和桌面应用程序进行交互。目前它工作正常,但它不在池连接上。我认为这就是为什么当更多人使用我的应用程序时,它只是没有给出响应,而是给出了更多 LIKE 的错误

连接已经存在 先关闭 SQL.close()

所以我打算将我的 API 升级到池连接,这意味着更多的人可以同时连接到我的 API。正确的?

所以我有这个连接到具有连接和查询的数据库代码,如下所示:

联系var dbConfig = { user: 'sa', password: "pmis13", server: '19', database: 'CUBES_HO', };

查询处理程序:

function executeQuery(query) {
return new Promise((resolve, reject) => {
    sql.connect(dbConfig, function (err) {
        if (err) {
            reject(err);
            sql.close();
        } else {
            // create Request object
            var request = new sql.Request();
            // query to the database and get the records
            request.query(query, function (err, data) {
                if (err) {
                    reject(err);
                    sql.close();
                } else {
                    resolve(data);
                    sql.close();
                }
            });
        }
    });
});}

查询如下所示:

app.get("/dailysale/:date", function (req, res) {
var query = "SELECT SUM(bill_amt) AS totalSale FROM [CUBES_HO].[dbo].[vw_bill_summary] where inv_loc_key = 2 and  bill_sale_date =  '"+req.params.date+"'";
executeQuery(query)
    .then((data) => {
        res.status(200).send({ "msg": "Records fetched", "data": data.recordsets });
    }).catch((err) => {
        res.status(500).json({ "msg": err.message });
    });});

我想转换它,或者我们可以说将此 api 升级为池连接,这对于多个连接来说听起来更可靠。纠正我我错了。

标签: javascriptnode.js

解决方案


我无法将此链接放在评论部分,因此将其发布在这里。这个关于 SO 的答案解释了 mysql.createConnection 和 mysql.createPool 之间的区别。

帮助您创建池连接的示例

const pool = new sql.ConnectionPool({
user: '...',
password: '...',
server: 'localhost',
database: '...'
})

在这里找到它。


推荐阅读