这是我的SQL连接的完整代码,所有代码我都从堆栈溢出问题。到处,我发现相同的代码是建议,因此我也尝试了相同的。我有一些其他的应用程序使用相同的连接与NextJS和它的工作很好,但是,如果我尝试只与NodeJS代码,它给出了一些套接字挂起错误(代码:'ESOCKET'名称:'ConnectionError')。请注意,TCP已经配置在远程服务器上,它的工作与其他应用程序罚款。
任何帮助都很感激,谢谢。
const express = require('express');
const fs = require('fs');
const path = require('path');
const cheerio = require("cheerio");
const sql = require('mssql');
require('dotenv').config(); //to use the env variables
// config for your database
var config = {
user: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
server: process.env.DATABASE_HOST,
database: process.env.SOMEDB,
port: 14345, // process.env.DATABASE_PORT,
options: {
encrypt: true, // for azure
trustServerCertificate: false // change to true for local dev / self-signed certs
}
};
// make sure that any items are correctly URL encoded in the connection string
let appPool = new sql.ConnectionPool(config);
//I got error on below connect
sql.connect(config).then(function(pool) {
//It never reaches here, it directly goes to the catch block
app.locals.db = pool;
const server = app.listen(3000, function () {
const host = server.address().address
const port = server.address().port
console.log('Example app listening at http://%s:%s', host, port)
})
}).catch(function(err) {
console.error('Error creating connection pool', err)
});
3条答案
按热度按时间xiozqbni1#
我也有同样的问题,尝试使用mssql版本6.0.1,它可以在我的代码上工作,但是我们确实需要找出问题所在,因为我们不能永远保留一个旧版本的包。
juzqafwq2#
我一直试图找到不同配置更改的解决方案。最后,我做了一个适当的配置,它工作了,现在它的连接正确,以及从表中返回数据。
我不知道确切的问题是什么,但根据以前的配置和这一个,似乎添加数据库名称到
options
已经解决了这个问题。请确保将所有敏感数据保存到.env文件。(您可以作为PROCESS.env.parametername访问该文件)
7vhp5slm3#
对于我,在驱动程序mssql@9.1.1中加密=false工作