【问题标题】:Connect nodejs rest api to Azure SQL Server将 nodejs rest api 连接到 Azure SQL Server
【发布时间】:2016-10-24 10:43:25
【问题描述】:

我在nodejs中开发了一个rest api。我的数据库在 Azure SQL 中。

我已经使用SWORM npm 包连接到 SQL Server。

以下是我连接到 Azure SQL 数据库的代码。

var conn = config.get('connectionString');
        var db = sworm.db({
            driver: 'mssql',
            config: {
                user: conn.get('user'),
                password: conn.get('password'),
                host: conn.get('host'),
                database: conn.get('database')
            }
        });

当我执行此代码时,我收到以下错误

"message": "无法连接到 undefined:1433 - 连接 ECONNREFUSED 127.0.0.1:1433", "code": "ESOCKET"

不知道怎么回事

【问题讨论】:

  • 您的代码似乎正在尝试连接到本地托管的数据库服务器 (127.0.0.1)。我建议检查连接字符串以确保它是正确的。
  • 是的。为什么这样?我在配置中的连接字符串很好,指向 Azure sql
  • 我是否需要对驱动程序进行任何更改。目前,我使用“mssql”。
  • @MARKANDBhatt - 我认为你错过了 Gaurav 所说的要点:从配置文件中读取连接字符串后,你确认连接字符串是正确的吗?即:你检查host的值了吗?
  • 是的。连接字符串是正确的。没有错。我可以使用 Visual Studio 连接到 Azure sql 数据库。

标签: sql-server node.js rest azure


【解决方案1】:

请仔细检查conn 的变量值,根据您的错误消息,它确实在访问您的本地 MsSQL 服务器。请尝试以下代码 sn-p 以使sworm 连接到 Azure SQL Server:

var sworm = require('sworm');

var db = sworm.db();

db.connect({
  driver: 'mssql',
  config: {
    user: '<user>@<server>',
    password: '<password>',
    server: '<server>.database.windows.net',
    database: '<database>',
    options: {
        encrypt: true // Use this if you're on Windows Azure
    }
  }
}).then(()=>{
    db.query('select 1 as number').then((results)=>{
        console.log(results);
    })
})

【讨论】:

  • 谢谢加里。我尝试使用此代码将我的本地计算机与 Azure SQL 连接起来。我有超时异常。我在 Azure SQL 的防火墙异常中添加了我的 ip。
  • 选项:{ encrypt: true } 为我解决了。 Thaaaanks 很多先生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-24
  • 2015-03-26
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多