2014-06-11 280 views
0
global.token=''; 
app.get('/'+global.token,function(req,res){ 
       console.log(token); 
       res.sendfile('mail3/reg.html'); 
}); 
socket.on('email',function(un){ 
       global.token=randtoken.generate(16); 
       console.log(global.token); 
       connection.query('update user_login set token="'+token+'" where email="'+un+'";'); 
}); 

在下面的代碼,當用戶輸入自己的電子郵件ID(針對特定用戶)。現在,當他點擊該鏈接時,「密碼更改對我生成令牌'頁面應該打開。然而這並沒有發生。在'email'事件中,會生成令牌並更新用戶表,但不會在app.get中調用。請幫忙。我想,我在這裏錯過了一個巨大的概念。謝謝。全局和局部變量

回答

0

首先,不使用global,這真是一個糟糕的做法

其次,它不會在你的情況,如果你有一個以上的用戶

第三項工作:

global.token=''; 
app.get('/'+global.token,function(req,res){ ... 

等於

app.get('/',function(req,res){ ... 

路徑不會神奇地更新,你應該通過token

使用類似

app.get('/:token', function(req,res){ ... 

和內部功能查找用戶