问题:
我一直在SQL查询中遇到错别字问题,而乏味的驱动程序并没有太大帮助。当有错误时,它可以很好地告诉我错误的类型和出了什么问题,但是堆栈跟踪永远不会包含我的任何项目文件。这使调试变得困难,尤其是当我在同一函数中进行多个查询时。我目前正在使用mssql库,但直接使用乏味的代码时遇到了同样的问题。另外,错误的堆栈中根本没有提到mssql,所以我认为这不是问题。
我尝试过的事情:
conn.on('error')
侦听器,该侦听器似乎没有任何作用。process.on()
个监听器。ConnectionPool
的初始化移到了自己的函数中,尝试在那里捕获错误。没有运气。某些代码:
这是我用来运行查询的准系统示例:
async function dbConnect() {
const conn = await new ConnectionPool(dbConfig).connect();
conn.on('error', error => {
console.error('*Connection Error:', error);
});
return conn;
}
async function runQuery() {
const conn = await dbConnect();
await conn.request().query(`SELECT Thing FROM Place`);
await conn.close();
}
runQuery()
.then(results => {
console.log(results);
process.exit(0);
})
.catch(error => {
console.error(error);
process.exit(1);
});
希望这是可能的。如果没有,有人会想到其他的SQL Server节点驱动程序吗?
编辑:在request
async function dbConnect() {
const conn = await new ConnectionPool(dbConfig).connect();
const request = new Request(conn);
conn.on('error', error => {
console.error('*Connection Error:', error);
});
request.on('error', error => {
console.error('*Request Error:', error);
});
return request;
}
async function runQuery() {
const request = await dbConnect();
await request.query(`SELECT Thing FROM Place`);
}