繁体   English   中英

params哈希如何在express.js中工作?

[英]How does the params hash work in express.js?

我不明白参数是如何工作的。

我了解它是一个对象,但不确定它是如何工作或形成的?

阅读文档后: http : //expressjs.com/api.html#req.param

这是我与params哈希一起使用的似乎有效的代码示例。

function showLoot(req,res) {
  var id = req.params.id;
  console.log(req.params.id);
  console.log(req.params);
  res.setHeader("Content-Type", 'text/html');
  res.send("<html><head><title>Adventures - NodeSlash</title></head><body><h1>Ogre-slaying knife</h1><p>It has +9 against ogres. It was id #" + id + "</p></body></html>");
}

这是路线:

app.get("/loot/:id",       showLoot);

什么是console.log来自

  console.log(req.params.id); // 1
  console.log(req.params); // [ id: '1' ]

如果我将另一个id传递给URL app.get('/ loot /:id')

我得到(通过时5)

 console.log(req.params.id; // 5
 console.log(req.params); // [ id: '5' ]

我猜这是一个对象数组吗? 它存储在哪里? 每个请求是否都具有神奇地制作的自己的params对象? 此外,如何将路径号放在/ loot /:id中并将其放置? 为什么将':'添加到:id?

路由中的参数允许您使用可变组件处理一组路由。 例如,假设您要为系统中的每个用户返回一个页面。 您可以处理允许用户ID参与其中的路由:

app.get('/user/:userId', function(req, res, next) { ... });

通过在:userId部分中使用冒号,是说对以/user/开头并带有一些值的任何路由运行此函数。

然后,Express将请求的值存储在req.params对象中。 请参阅http://expressjs.com/api.html#req.params

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM