Jab*_*baa 3 javascript node.js express
试图在express js中获取URl参数,但是得到了空对象。
var password= require('./routes/password');
app.use('/reset/:token',password);
Run Code Online (Sandbox Code Playgroud)
password.js
router.get('/', function(req, res, next) {
console.log(req.params);
res.send(req.params);
});
Run Code Online (Sandbox Code Playgroud)
console.log(req.params) 输出是 {}
访问网址:http://localhost:3000/reset/CiVv6U9HUPlES3i0eUsNwK9zb7xVZpfHsQNuzMNWqLlGA4NJKoagwbcyiUZ8
rob*_*lep 10
默认情况下,嵌套路由器不会从其父路由器传递安装路径中使用的任何参数。
在您的情况下,app是父路由器,它/reset/:token用作安装路径,并且router是嵌套路由器。
如果您希望router能够访问req.params.token,请按照以下步骤进行创建:
let router = express.Router({ mergeParams : true });
Run Code Online (Sandbox Code Playgroud)
记录在这里。
相反,您可以使用中间件来记录路径参数:
const logger = (req, res, next)=>{
console.log(req.params)
res.send(req.params)
next()//<----very important to call it.
};
app.use(logger); //<----use to apply in the app
router.get('/', (req, res, next)=>res.send('Logged.'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
962 次 |
| 最近记录: |