2015-10-05 66 views
0

你好,有人可以幫助我。我試圖做一個簡單的註冊登錄網站,我不能將響應傳入我的回調我已經累了bind()和一個全局變量。問題是res.writeHead()Node.js將一個變量傳遞給回調

http.createServer(function (req,res){ 
var body = ''; 
if(req.method='POST'){ 
    req.on('data',function(chunk){ 
     body+=chunk; 
    }); 

    req.on('end',function(){ 
     console.log('POSTED: ' + body); 
     var content = body.split('&'); 
     if(content[0].split('=')[0] == 'login') 
     { 
      connectDB(dbURL,function(){ 
       User.findOne({ 
        'username':content[1].split('=')[1], 
        'password':content[2].split('=')[1]}, 
       function(err,loginUser){ 
        console.log(loginUser); 

        if (loginUser != null) 
        { 
         res.writeHead(301,{Location: './page.html'}); 
         res.end(); 
        } 

        db.close(); 
       }); 
      }); 
+0

您是否嘗試過使用像express.js這樣的框架?可能更容易使用... – CreasolDev

+0

你得到的錯誤信息是什麼?我也建議使用快遞。 – Louy

+0

是的,我知道它更容易,我一定會使用express.js,但首先我想從頭學習的東西。並沒有錯誤味精程序符文通常它只是不會重定向到page.html網站 – BlackIce

回答

0

我想這個問題是

if (loginUser != null) 

你試過嗎?

if (loginUser !== null) 
+0

這不是我遇到的問題,我已經測試過,它可以找到用戶。 – BlackIce

+0

所以你看到'console.log(loginUser)'輸出?如果你進入'if',那麼在代碼的其他地方肯定會出現一些問題,我剛剛將'res.writeHead ...'粘貼到我正在處理的東西中,並且它可以工作。你有沒有嘗試過使用Mongoose查詢API而不是回調? 'User.findOne({/ * blah * /})。exec()。then(/ * do stuff * /);' – piemonkey