[英]How do I fix the "ConnectionError: failed to connect to <server>:<port> in 15000ms" error?
第一次为 Azure SQL Server 数据库创建 Node/Express api。 看起来这只是延长超时限制的问题,但它也只是与数据库的连接,而不是实际查询。 这对于连接到 Azure 是否正常,实际上是延长超时将解决的问题还是其他问题?
索引.js
var express = require('express');
var router = express.Router();
const sql = require("../dboperation")
/* GET root route */
router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' });
});
// Test db connection
router.get('/testconnect', function(req, res, next) {
sql.getdata();
res.render('index', { title: 'Express' });
});
module.exports = router;
数据库操作.js
var config = require("./dbconfig")
const sql = require("mssql")
async function getdata(){
try {
let pool = await sql.connect(config)
console.log("SQL Server connnected...")
} catch(error) {
console.log("error: " + error)
}
}
module.exports = {
getdata: getdata,
}
数据库配置文件
const config = {
user : "username",
password : "password",
server : "server-name.database.windows.net",
database : "database-name",
options: {
trustedConnection: true,
enableArithAort: true,
encrypt: true
},
port: 49678
}
module.exports = config;
SQL Server 配置管理器:
您可以尝试延长一次超时时间。
假设您已经设置了适当的环境变量,您可以按如下方式构造一个配置对象:
const sql = require('mssql')
const sqlConfig = {
user: process.env.DB_USER,
password: process.env.DB_PWD,
database: process.env.DB_NAME,
server: 'localhost',
pool: {
max: 10,
min: 0,
idleTimeoutMillis: 30000
},
options: {
encrypt: true, // for azure
trustServerCertificate: false // change to true for local dev / self-signed certs
}
}
async () => {
try {
// make sure that any items are correctly URL encoded in the connection string
await sql.connect(sqlConfig)
const result = await sql.query`select * from mytable where id = ${value}`
console.dir(result)
} catch (err) {
// ... error checks
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.