MSSQL的NodeJS ConnectionError:用户登录失败'
问题描述:
这是我的代码:MSSQL的NodeJS ConnectionError:用户登录失败'
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,用户名变量应改为用户!而且sql查询也是错误的,它应该是[Alg]。[User],因为'User'是关键字!
答
这为我工作: 相反,我把它改成 var sql = require("mssql/msnodesqlv8");
我没有硬编码的用户名/密码的
var sql = require("mssql");
。 这里是我的DBCONFIG是什么样子:
var db_config = {
driver: "msnodesqlv8",
server: "ServerName",
database: "databaseName",
options: {
trustedConnection: true,
useUTC: true
}
}
希望这可以帮助别人
答
对于谷歌的观众......
如果上述解决方案并不为你工作。您应该检查计算机服务中的SQL Server浏览器正在运行,因为这是将请求处理到服务器的过程。
那一个难倒我了一会儿
答
请“用户名”到配置“用户”。如果您尝试console.log(conn),您将看到该配置使用“user”而不是userName。
我已经回答了这个问题,请参考 SQL Server Error "[ConnectionError: Login failed for user '****'.] "while connecting SQL Server with Nodejs using MSSQL
我得到找不到模块“msnodesqlv8” – John