У меня есть API отдыха nodejs, вызывающий мой предварительный SQL Server. Он размещен в Azure и подключен к моему SQL-серверу с помощью гибридного подключения Azure. На моем локальном компьютере все работает, как и ожидалось, но в Azure я получаю ошибку ConnectionClosed (ECONNCLOSED), когда пытаюсь вызвать тестовый маршрут ниже:
Вот мой пример кода:
var express = require('express');
var app = express();
var sql = require('mssql/msnodesqlv8');
// Connection string parameters.
var sqlConfig = {
user: 'restapi', //remove if using Windows Auth
password: 'restapi', //remove if using Windows Auth
database: 'dbname',
server: 'server\\instance',
driver: 'msnodesqlv8',
options: {
encrypt: true
}
}
var server = app.listen(process.env.PORT || 8081, function () {
var host = server.address().address
var port = server.address().port
console.log("app listening at http://%s:%s", host, port)
});
app.get('/', function(req, res) {
res.json({"message": "Welcome to the API"});
});
app.get('/Test', function (req, res) {
sql.connect(sqlConfig, function() {
var request = new sql.Request();
request.query("select 1 as number") //query
.then(result => {
let rows = result.recordset //first recordset
res.setHeader('Access-Control-Allow-Origin', '*')
res.status(200).json(rows);
sql.close();
}).catch(err => {
console.log(err);
res.status(500).send({
message: err
})
sql.close();
});
})
});
Есть идеи?