node-mssql连接进行连续插入时出错

发布于 2022-09-02 21:01:13 字数 1516 浏览 18 评论 0

我在用node.js连接mssql,用的node-mssql,用下面方法进行封装,单条测试没有问题,但是进行连续插入时,只有最后一个能够正常插入,错误提示:Connection is closed. 查了半天,发现这种写法是官方文档上写的Quick Example with one global connection,这样是只建立了一个全局连接,前面没有操作完成,就被后面的连接打断了,所以出错?但此库的连接配置中又提供了pool的配置!我错在哪里,该如何做呢?谢谢!

var mssql = require('mssql');
var options = {
    server: config.server,
    port: config.port,
    user: config.user,
    password: config.password,
    database: config.database,
    pool: {
        max: 10,
        min: 2,
        idleTimeoutMillis: 30000
    }
}
...
function query(sql,params){
    return new Promise(function(fulfill, reject) {
        mssql.connect(options, function(err) {
            console.dir(arguments)
            if(err){
                reject({err:err.message})
                logger.error(err.message)
            }else{
                let sqlReq = new mssql.Request();
                if(params){
                    let ps = Object.keys(params);
                    for(let i = 0; i < ps.length; i++){
                        sqlReq.input(ps[i],params[ps[i]])
                    }
                }
                sqlReq.query(sql, function(error, result) {
                    if (error) {
                        reject({err:error.message});
                        logger.error(error.message + ' Sql is : ' + sql)
                    } else {
                        fulfill(result);
                        logger.debug(sql)
                    }
                });
            }
        });
    });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

英雄似剑 2022-09-09 21:01:13

已经解决了,node-mssql上的文档不全,仔细看官文文档,new sql.Connection时有一个返回参数,这个参数作为new sql.request()参数,就好了!

var connection = new sql.Connection(config, function(err) {
    // ... error checks
    var request = new sql.Request(connection); // or: var request =  connection.request();
    request.query('select 1 as number', function(err, recordset) {
    // ... error checks
    console.dir(recordset);
    });

});

文档地址:http://csdoc.org/
为什么文档不一致,真坑人,折腾了一个下午!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文