2017-08-25 85 views
0

我正在使用nodejs & expressjs重置密碼功能。當用戶單擊重置郵件URL時,他將使用一些加密數據重定向到控制器。在Expressjs中獲取Url參數

router.get('/:encryptedData',controller.resetPassword); 

在這個頁面中,我能夠訪問req.params.encryptedData當他提交的復位形式,它會發布到

localhost:3000/reset/0183d5992d2c79743d40ea2de6e60f8ffd4c8bb996f3d46971 

和後路由器就是這樣

router.post('/:encryptedData',controller.postreset); 

控制器內我試圖訪問'encryptedData'使用req.params.encryptedData,但它顯示'重置'在console.Can任何人都可以幫助我解決這個問題。

謝謝。

+0

您的路由器似乎配置正確的方式,它應該像'router.post('/ reset /:encryptedData',controller.postreset);' – codtex

回答

0

因爲,你的路線是: localhost:3000/reset/0183d5992d2c79743d40ea2de6e60f8ffd4c8bb996f3d46971

後路由器應該是這樣的:

router.post('/reset/:encryptedData',controller.postreset);

理想的情況下,配置應該是這樣的:

var app = express(); 

var router = express.Router(); 
var resetRouter = express.Router(); 

// you can nest routers by attaching them as middleware: 
router.use('/reset', resetRouter); 

app.use('/', router); 
+0

app.use('/ reset',require('./ resetpassword')); line添加到server.js頁面。所以沒有必要在url中添加/重置,對吧? –

+0

如果'resetpassword.js'輸出一個路由器實例,那就沒問題。 –

+0

resetpassword是一個包含controller.js,index.js,password.html的文件夾位置。 –