如何将现有的nodejs服务器应用程序连接到Azure SQL数据库

时间:2020-07-08 15:51:18

标签: sql node.js azure

任何人都可以建议:

我有一个运行在azure上的现有nodejs服务器,在Linux上运行的节点10.14。该项目代码在github上,当我推送更改时,它们会自动推送到Azure。

我已经通过Azure门户设置了数据库服务器和数据库,并且可以通过Azure门户进行查询。

我想修改nodejs服务器以连接到数据库,我有连接字符串代码等,但是只是添加以下行:

var mysql = require('mysql'); 

将停止服务器窗体的运行,因为大概我没有在运行Azure云中服务器的计算机上安装mysql。

如何使它正常工作?

感谢您的帮助, 米奇。

1 个答案:

答案 0 :(得分:0)

根据错误,您没有将软件包添加到package.json文件中,也没有将软件包安装在项目中。此外,如果要连接Azure SQL服务器数据库,我们可以使用软件包mssqql

例如

  1. 我的package.json文件
{
....
  
    "dependencies": {
        "express": "^4.17.1",
        "mssql": "^6.2.0",
        "request": "^2.88.2"
    }

}
  1. 代码
const router = express.Router()
const sql = require('mssql')


const config = {

  user: "<user name>",
  password: "<password>",
  server: "<your SQL server name>.database.windows.net",
  port: 1433,
  database: "test",
  connectionTimeout: 3000,
  parseJSON: true,
  options: {
    encrypt: true,
    enableArithAbort: true
  },
  pool: {
    min: 0,
    idleTimeoutMillis: 3000
  }
};
const pool = new sql.ConnectionPool(config);
const poolConnect = pool.connect();

router.get('/', async function (req, res) {
  
  await poolConnect;
  try {
    const request = pool.request(); 
    const result = await request.query('select 1 as number')
    console.log(result);
    res.json(result.recordset);
    
} catch (err) {
    console.error('SQL error', err);
    res.send(err);
}
});
  1. 测试。

enter image description here

相关问题