我也跟着教程这里建立在Azure上一个node.js的网站连接到SQL-Azure的DB:“登录失败” 连接到SQL-Azure的Node.js的距离(msnodesql)
http://www.windowsazure.com/en-us/develop/nodejs/tutorials/web-site-with-sql-database/
下面是我的.js代码的样子:
var sql = require('msnodesql'),
nconf = require('nconf');
exports.authenticate = function(req, res){
var select = "select userID, clientID from users where username_e = '?' AND pwd_e = '?'";
nconf.env().file({ file: 'config.json' });
var conn = nconf.get("SQL_CONN");
console.log(conn);
sql.query(conn, select, [req.param('username'), req.param('password')], function(err, results) {
if(err)
throw err;
console.log(results);
if(results.length == 0) {
// no match
res.redirect('/login?failed=true');
} else {
// authenticated
res.redirect('/start');
}
});
return;
};
但是,当我在我的本地node.js的运行它,我不断收到
"Login failed for user 'mylogin'"
- 我直接从Azure管理 站点复制ODBC连接字符串
- 我更换{您的密码在这里}与我的密码
- 我四重检查了用户名和密码是否正确(我可以成功登录到管理工具,并且我可以通过SQL Server Management Studio从本地连接到数据库)
- 我增加了一个IP例外,我的公网IP地址为
- 我试图在这里编辑连接字符串,并有很好的措施(改变用户名mylogin而不是mylogin @服务器,而是使用ADO连接字符串试过)
我也可以使用jdbc在Java中成功连接。下面是工作的JDBC连接字符串:
jdbc:sqlserver://xxxmyserver.database.windows.net:1433;DatabaseName=mydb;[email protected];password=pwd
下面是不起作用Node.js的ODBC连接字符串:
Driver={SQL Server Native Client 10.0};Server=tcp:xxxmyserver.database.windows.net,1433;Database=[mydb];[email protected];Pwd=pwd;Encrypt=yes;Connection Timeout=30;
我只是完全在这里的损失,尤其是因为我可以连接罚款从我的地方使用SSMS。其他人遇到同样的问题?
在它的事项,我如何使用Node.js v0.8.2(因为这是什么Azure上的VM)的情况下和msnodesql v0.2.1
是否有密码的任何特殊字符?只是wodnering如果你有你逝去的密码PARAM任何URL编码问题 – 2013-03-19 05:17:37
不错的想法,但没有 - 只有大/小写和数字 – 2013-03-19 12:30:09
这里是另一个有趣的皱纹:我可以使用JDBC从Java连接就好了,但仍然没有骰子与node.js.我将编辑两个连接字符串到问题主体 – 2013-03-20 02:59:46