Проблема:
У меня постоянно возникают проблемы с опечатками в моих SQL-запросах, и утомительный драйвер мало помогает. Когда есть ошибки, он отлично работает, сообщая мне тип ошибки и что пошло не так, но трассировка стека никогда не содержит никаких файлов моего проекта. Это затрудняет отладку, особенно когда я делаю несколько запросов в одной и той же функции. В настоящее время я использую библиотеку mssql, но столкнулся с той же проблемой при непосредственном использовании tedious. Кроме того, mssql вообще не упоминается в стеке ошибок, поэтому я считаю, что это не проблема.
Что я пробовал:
- Поиск проблем на утомительной странице GitHub
- Добавлен
conn.on('error')
слушатель, который, похоже, ничего не делает.
- Добавлено
process.on()
слушателей для 'uncaughtException' и 'unhandledRejection'.
- Перенес инициализацию
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);
});
Ошибка:
Надеюсь, это возможно. Если нет, есть ли другой драйвер Node для 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`);
}