Azure node.js应用程序 - 覆盖SQL Server端口5984

时间:2015-11-10 07:00:37

标签: sql-server node.js azure

Azure似乎覆盖了我的SQL Server端口..

我已将它配置为端口1433并且它在本地完美运行但在Azure上它用5984替换端口..导致连接超时。

我正在使用NPM模块mssql

1 个答案:

答案 0 :(得分:0)

我在Azure Web Apps上构建了一个带有Azure SQL测试连接请求函数的Express应用程序,它可以正常使用。默认情况下,nodejs mssql模块已将端口设置为1433,并且要连接到Azure SQL服务器,则无需在配置中设置端口。

Azure不会更改我们在Azure Web Apps上部署的代码。我认为您需要检查您的代码是否有任何错误配置或冲突。

这是我的测试连接功能,供您参考。

app.get('/mssql',function(req,res){
    var sql = require('mssql');
    var config = {
        user: 'username',
        password: 'password',
        server: '{servername}.database.windows.net', // You can use 'localhost\\instance' to connect to named instance 
        database: '{database name}',
        port:1433,
        options: {
            encrypt: true // Use this if you're on Windows Azure 
        }
    }

    var connection = new sql.Connection(config, function(err) {
        // ... error checks 

        // Query 

        var request = new sql.Request(connection); // or: var request = connection.request(); 
        request.query('select 1 as number', function(err, recordset) {
            // ... error checks 

            res.send(recordset);
        });

    });

    connection.on('error', function(err) {
        // ... error handler 
    });
})

另一方面,如果您的SQL Server数据库位于Azure VM上,则可以直接在VM门户网站的 ENDPOINT 选项卡中配置端口。您可以将私有端口自定义为公共端口。