Nodejs mssql ConnectionError:用户登录失败' '

时间:2017-02-23 12:59:32

标签: sql-server node.js

这是我的代码:

var sql = require("mssql");

var dbConfig = {
server: "server",
username: "user",
password: "password",
database: "database"
};

function getEmp() {
var conn = new sql.Connection(dbConfig);
console.log(conn);
var req = new sql.Request(conn);
conn.connect(function (err) {
    if (err) {
        console.log(err);
        return;
    }
    req.query("SELECT * FROM Alg.User", function (err, recordset) {
        if (err) {
            console.log(err);
            return;
        }
        else {
            console.log(recordset);
        }
        conn.close();
    });
});
}

getEmp();

这是我记录的错误:

 { ConnectionError: Login failed for user ''.
at Connection.<anonymous> (c:\users\milan\documents\visual studio 2015\Projects\SampleSQLConn\SampleSQLConn\node_modules\mssql\lib\tedious.js:378:25)
at Connection.g (events.js:291:16)
at emitOne (events.js:96:13)
at Connection.emit (events.js:188:7)
at Connection.processLogin7Response (c:\users\milan\documents\visual studio 2015\Projects\SampleSQLConn\SampleSQLConn\node_modules\tedious\lib\connection.js:672:16)
at Connection.message (c:\users\milan\documents\visual studio 2015\Projects\SampleSQLConn\SampleSQLConn\node_modules\tedious\lib\connection.js:1082:21)
at Connection.dispatchEvent (c:\users\milan\documents\visual studio 2015\Projects\SampleSQLConn\SampleSQLConn\node_modules\tedious\lib\connection.js:519:45)
at MessageIO.<anonymous> (c:\users\milan\documents\visual studio 2015\Projects\SampleSQLConn\SampleSQLConn\node_modules\tedious\lib\connection.js:439:23)
at emitNone (events.js:86:13)
at MessageIO.emit (events.js:185:7)
name: 'ConnectionError',
message: 'Login failed for user \'\'.',
code: 'ELOGIN' }

任何人都知道我做错了什么?看起来我的变量用户名没有放在连接字符串中?但我不明白为什么......

提前致谢!

解决方案:

问题是在dbConfig中,用户名变量应该更改为user!并且sql查询也是错误的,应该是[Alg]。[User],因为&#39; User&#39;是一个关键字!

4 个答案:

答案 0 :(得分:5)

这对我有用: 而不是

var sql = require("mssql");

我把它改成了 var sql = require("mssql/msnodesqlv8");

我没有硬编码用户名/密码。 这是我的dbconfig的样子:

var db_config = {
                driver: "msnodesqlv8",
                server: "ServerName",
                database: "databaseName",
                options: {
                trustedConnection: true,
                useUTC: true
              }
            }

希望这有助于某人

答案 1 :(得分:4)

请输入&#34;用户名&#34;到&#34;用户&#34;在您的配置中。如果您尝试使用console.log(conn),您将看到配置正在使用&#34; user&#34;而不是userName。

我已经回答了这个问题,请参考 SQL Server Error "[ConnectionError: Login failed for user '****'.] "while connecting SQL Server with Nodejs using MSSQL

答案 2 :(得分:0)

对于谷歌观众......

如果上述解决方案不适合您。您应该检查计算机服务中的SQL Server浏览器是否正在运行,因为这是处理对服务器的请求的内容。

那个人困扰了我一段时间

答案 3 :(得分:0)

将dbConfig的“用户名”更改为“用户”

相关问题