任何人都可以建议:
我有一个运行在azure上的现有nodejs服务器,在Linux上运行的节点10.14。该项目代码在github上,当我推送更改时,它们会自动推送到Azure。
我已经通过Azure门户设置了数据库服务器和数据库,并且可以通过Azure门户进行查询。
我想修改nodejs服务器以连接到数据库,我有连接字符串代码等,但是只是添加以下行:
var mysql = require('mysql');
将停止服务器窗体的运行,因为大概我没有在运行Azure云中服务器的计算机上安装mysql。
如何使它正常工作?
感谢您的帮助, 米奇。
答案 0 :(得分:0)
根据错误,您没有将软件包添加到package.json
文件中,也没有将软件包安装在项目中。此外,如果要连接Azure SQL服务器数据库,我们可以使用软件包mssqql
例如
package.json
文件{
....
"dependencies": {
"express": "^4.17.1",
"mssql": "^6.2.0",
"request": "^2.88.2"
}
}
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);
}
});