2016-08-23 72 views
-3

在我的Express應用程序中,我試圖在運行時動態添加新定義的路線。這裏是我的代碼:如何在express js中動態添加新定義的路由?

app.post('/new-user', function(req,res){ 
    var temp = { name: "joe-bloggs", age: 20 }; 
    users.push(temp); // users is a global variable defined earlier 
    var path = '/' + temp.name; 
    app.get(path, function(req,res){ 
     res.send('Welcome to localhost:3000/joe-bloggs'); 
    }); 
}); 

所以現在,如果用戶試圖訪問本地主機:3000 /喬 - 布洛斯,他們將與歡迎信息對質,但我不斷收到一個404沒有發現,因爲快遞是告訴我說路線還沒有定義。

+3

聽起來像你想要的是params。 '/:username' –

+0

它不起作用的原因是因爲你在你的錯誤和404處理程序被定義之後定義了路由,所以它從未到達過。如果您將其定義在路由器上,它將會運行,直到應用程序重新啓動。當然,params可以解決這兩個問題的正確方法。 –

回答

0

只是使用req.params它是用於這種情況。無需爲每個用戶添加額外的路線。

app.get('/:username', function(req, res) { 
    res.send('Welcome to localhost:3000/' + req.params.username); 
}); 
+0

謝謝你的幫助! –