node.js - node-mssql连接进行连续插入时出错
高洛峰
高洛峰 2017-04-17 13:59:00
0
1
616

我在用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) } }); } }); });
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all (1)
迷茫

已经解决了,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/
为什么文档不一致,真坑人,折腾了一个下午!

    Latest Downloads
    More>
    Web Effects
    Website Source Code
    Website Materials
    Front End Template
    About us Disclaimer Sitemap
    php.cn:Public welfare online PHP training,Help PHP learners grow quickly!