Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在Express中使用管线参数_Node.js_Mongodb_Express - Fatal编程技术网

Node.js 如何在Express中使用管线参数

Node.js 如何在Express中使用管线参数,node.js,mongodb,express,Node.js,Mongodb,Express,我很难用express将点与路由器.params对象连接起来 现在,我想让下面代码中的按钮success按钮指向一个url,其内容为someaddress.com/formula/:item.\u id HTML:(EJS模板引擎) 然后使用MongoDB文档中的信息生成页面 我不清楚你是怎么做到这一点的 谢谢您的帮助。您的代码不完全正确。在html中使用公式(复数),但在路由器中使用prop公式(单数)将对象传递给res.render。如果我理解你的代码,它们应该是相同的(公式)。接下来,re

我很难用express将点与
路由器.params
对象连接起来

现在,我想让下面代码中的
按钮success
按钮指向一个url,其内容为
someaddress.com/formula/:item.\u id

HTML:(EJS模板引擎)

然后使用MongoDB文档中的信息生成页面

我不清楚你是怎么做到这一点的


谢谢您的帮助。

您的代码不完全正确。在html中使用
公式
(复数),但在路由器中使用prop
公式
(单数)将对象传递给
res.render
。如果我理解你的代码,它们应该是相同的(
公式
)。接下来,res.router的第一个参数应该是不带扩展名的html文件名,因此如果名称是formulas.html或formulas.ejs,则需要使用
res.render('formulas',…
。呈现视图后,按钮应指向
/formula/公式id
@Molda-我省略了代码,因为有人投票要求我的问题因不够清晰而关闭。html中的
formulas
位来自从另一个路径传入的变量。
formula一个
变量被设置为JSON对象中的一个变量,因此在本例中它不会有什么区别。好的,我只是阅读了您最初编写的内容。因此,您似乎感到困惑的url是
/formula/:id
。您需要知道的是,
:id
只是一个占位符,而不是实际值。如果有的请求ode>/formula/1234然后
路由器.get('/formula/:id',…
将处理它,express将解析id并将其作为
req.params.id
@Molda提供-谢谢。好的,那么如果我想显示
formula
模板,但使用
/formula/:id
url,我是否只需执行
res.render('formula',{JSON data})
?是的。我想通过
JSON data
你是指javascript对象,对吗?我注意到很多人把它称为JSON,但它只是一个对象。JSON是用于传输数据的数据格式。对象->{a:1},JSON->'{a:1}'
  <% formulas.forEach(function(item){ %>
  <div class="pure-u-1 pure-u-sm-1-2 pure-u-md-1-4 pure-u-xl-1-5">
      <div class="formula-block centered" id="<%= item._id %>">
        <h4 class="padded-top"> <%= item.name %></h4>
        <p> <%= item.description %></p>
          <button class="button-success pure-button"><a href="/formula/<%= item._id %>">Show</a></button>
          <button class="button-warning pure-button">Delete</button>
    </div>
  </div>
  <% }); %>
router.get('/formula/:id', function(req, res){
  var db = req.db;
  var collection = db.get('formulas');
  var id = req.params.id;
  collection.find({"_id": id}, {}, function(e, doc){
  res.render('formula/:id', {
    formula: doc,
    title: `formula for ${doc.name}`,
    description: `modify and view ${doc.name} formula`
      });
    });
});