sql-server - Node mssql 连接错误 : Login failed for user ' '

标签 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 中,username 变量应该改为 user!而且sql查询也是错误的,应该是[Alg].[User],因为'User'是关键字!

最佳答案

使用 tedious / msnodesqlv8 driver对于 Windows 为我工作:

代替:

var sql = require("mssql");

我把它改成了:

var sql = require("mssql/msnodesqlv8");

我没有硬编码用户名/密码。

这是我的 dbconfig 的样子:

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

关于sql-server - Node mssql 连接错误 : Login failed for user ' ' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42416457/

相关文章:

node.js - 如何在 NodeJS 应用程序中创建某种上下文,我可以在从那里调用的所有函数中访问它?

javascript - 无法在另一个 js 文件中加载自定义 Mongoose 架构

javascript - 使用 Node.js 调用 child_process 与从 C 调用子进程并创建 C++ 绑定(bind)以从 node.js 调用

sql - 是否可以将可变列名传递到更新语句中?

mysql - 将时间戳转换为正确的格式

sql-server - SQL Server 创建用户后无法登录

node.js - 如何使用node.js在机器人中获取用户的IP地址?

sql - 使用变量查询

python - 如何从pyodbc中的用户获取表名,同时避免SQL注入(inject)?

javascript - 未捕获的语法错误 : Unexpected token < (from &lt;! DOCTYPE html>)