2014-04-10 50 views
0

我遇到了一些麻煩,我得到了一條路線。該路線在http://localhost:3000/me上工作,並顯示信息,但在http://localhost:3000/!#/me它已經顯示任何東西。所述路線的目的是顯示登錄人員的個人資料。 我的服務器上的路線我:NodeJS - 無法訪問我想要的路線

app.get('/me', users.me);

users.me功能如下:

exports.me = function(req, res) { res.jsonp(req.user); };

控制檯指出其預期目標,得到了一個數組,我可以理解,因爲我得到了一個JSON,但是我怎樣才能將自己的用戶發回到前端,以顯示他/她的個人資料?

編輯:我設法解決我的問題,因爲我使用passportjs我可以從會話中獲取用戶標識。由於我已經有了一個用戶id的路由,我只需要重定向到所述路由。像這樣:req.redirect('users/'+ req.session.passport.user);。由於我已經有一個/users/:userId路線工作,它完全解決了我的問題。

編輯2:顯然有幾種方法獲取用戶ID。嘗試console.log的請求,你會看到我的意思:)

+0

/我和/!#/我是不一樣的路線。後者將不匹配get('/ me',..) – leoh

+0

是的,我知道,但是如何一個人工作,另一個人不工作? 在/我的URL我得到了JSON輸出,並在!#/我的路線我得到的角度錯誤:'[$資源:badcfg]資源配置錯誤。預期的響應包含一個對象,但有一個數組' – Cacos

+0

我可以做的是嘗試將記錄的用戶ID傳遞到路由,一切都應該工作,但我不知道如何獲取記錄的用戶ID。 – Cacos

回答

1
  • /我和/!#/我是不一樣的路線。後者不匹配get(' /me',..)
  • 散列片段#/ me將不會發送到服務器,您不能捕獲通過服務器端路由器(不強制頁面刷新客戶端代碼)。但是你可以通過客戶端代碼來管理它。
+0

是的,但如何?我可以做一些其他的獲取登錄用戶的id並將其傳遞給路由:'/ users /:userId',我的主要問題是如何獲取登錄用戶的ID。 – Cacos

+0

似乎它不是路由本身的問題,但與其他的東西,我已經嘗試了以下代碼: 'app.get('/ me',function(){});' 而在Chrome控制檯上,我會像以前一樣在角度上得到完全相同的錯誤(期待和對象,並獲得一個數組錯誤),我認爲在角度之間有一些東西不喜歡它。 – Cacos

+0

我同意,它聽起來像一個單獨的問題,假設我理解正確:一旦用戶登錄,你可以從cookie或會話變量讀取。 「我不知道如何獲得登錄的用戶ID」......你知道用戶登錄後用戶ID的存儲位置嗎?如果這是明確的,那麼解決方案也是如此。 – leoh