Я подключаюсь к базе данных SQL-сервера, размещенной в Azure через Node.js.Мой код выглядит так:
const database = 'test';
const options = {
user: 'user',
password: 'password',
server: '<server>.database.windows.net',
encrypt: true
};
const pool1 = new ConnectionPool(options);
try {
await pool1.connect();
const request = pool1.request();
await request.query(`CREATE DATABASE "${database}"`);
}
catch (err) {
console.error(err);
}
finally {
await pool1.close();
}
options.database = database;
const pool2 = new ConnectionPool(options);
try {
await pool2.connect();
}
catch (err) {
console.error(err);
}
finally {
await pool2.close();
}
База данных test
успешно создана, но при повторном подключении к базе данных напрямую через pool2.connect()
выдает ошибку:
An error occured: Login failed for user 'user'.
ConnectionError: Login failed for user 'user'.
at Connection.tedious.once.err ([dir]/node_modules/mssql/lib/tedious.js:239:17)
at Object.onceWrapper (events.js:273:13)
at Connection.emit (events.js:182:13)
at Connection.processLogin7Response ([dir]/node_modules/tedious/lib/connection.js:1314:16)
at Connection.message ([dir]/node_modules/tedious/lib/connection.js:1827:14)
at Connection.dispatchEvent ([dir]/node_modules/tedious/lib/connection.js:1012:38)
at MessageIO.<anonymous> ([dir]/node_modules/tedious/lib/connection.js:891:18)
at MessageIO.emit (events.js:182:13)
at Message.<anonymous> ([dir]/node_modules/tedious/lib/message-io.js:60:15)
at Message.emit (events.js:187:15)
Теперь, если я снова запускаю тот же код, он не выдает ошибку снова, поэтому я предполагаю, что это потому, что я пытаюсь подключиться к базе данных сразу после ее создания.Я также пытался использовать pool2.query('USE database')
вместо передачи database
в параметры пула, но я получаю еще одну ошибку, говоря, что я не могу использовать USE
после создания базы данных.
Я использую mssql
версию4.2.3
, node
версия 10.1.0