2017-04-23 121 views
0

我正在開發一個簡單的MEAN堆棧應用程序。我採用了棱角分明的路由重定向到基於項目的ID的頁面點擊是這樣的:nodeJS中無法獲取/錯誤

when('/story/:id', { 
     template: '<news-detail></news-detail>' 
    }) 

當一個項目被點擊的時候,應該去這樣的頁面:http://localhost:3002/story/58fbcf765865db1d8da94b41

,但對頁面我收到「Can not GET/story/58fbcf765865db1d8da94b41」節點錯誤。

從後端我已經試過這樣:

app.get('/story/:id', function(req, res){ 
    if(req){ 
    var id = req.params.id; 
    PostProfile.News.findById(id, function(err, item){ 
     if(item){ 
      console.log("found") 
      res.send(item) 
     } 
    }) 
    } 
}) 

這種解決方案只是顯示在頁面上一些生JSON

{"_id":"58fbc2834f675c1cdb7dc628","title": ..... 

什麼是走一圈,這和我如何使用的角度來先通過id創建請求,而不經過nodejs。

非常感謝。

+0

這是一個網絡服務器(表達我assumng)的錯誤,而不是一個節點的錯誤。也可能出現節點錯誤,但是您的代碼不會輸出錯誤,或者您沒有找到要查看的位置(stderr,stdout或日誌)。首先,我會在你的回調中處理錯誤:'if(err){console.error(err))'在你的findById中。另外,「if(req)」感覺非常多餘。如果您在快速路由方法中沒有req對象,那麼您確實有些奇怪的事情發生了...... – ippi

+0

第1步,檢查您的網絡選項卡並檢查呼叫以嘗試找出它有多遠(您有一個服務器響應,所以繼續!)。步驟2:檢查服務器端是否收到呼叫,日誌,輸出。第3步:沒有錯誤?確保你的代碼以某種方式輸出錯誤。第4步:當你有真正的錯誤檢查與SO,但你可以大概找出其餘的! :)你真正的問題在於找到真正的錯誤信息。 – ippi

+0

只是爲了理清最後幾位。 'when('/ story /:id',{'這是一個角度路線,它假定'[webroot]/story /:id'。你的後端可能與你的webroot不一樣。是的,這當然是可能的配置express或nginx或其他方法來捕捉/ story /並確保後端得到它,但它通常不是這種情況。正常情況是清楚地分離正面和背面(例如'/ api/story /: id'或另一個端口'localhost:4004/story /:id'。) – ippi

回答

0

去一些網頁,你所要做的res.render 如:

router.get('/story/:id', function(req, res) { 
    var id = req.params.id; 
    PostProfile.News.findById(id, function(err, item){ 
     res.render('somePage', { 
     pageTitle: item.title, 
     body: item.body 
    }); 
    }) 
});