我也跟着教程這裏建立在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