如何处理快递路线中的多个参数

时间:2019-05-13 09:28:23

标签: javascript express routing handlebars.js

我正在开发一个使用快递和路由来处理http请求的网站。

我正在使用车把填充html div元素:

<div class="popup center" style="height: 15em;">
    <h3 name="name" id="name">{{ active_name }}</h3>
    <p name="description" id='description'>{{ active_desc }}</p>
</div>

现在,我让用户使用 contenteditable =“ true” 修改这些元素。

我想用一个按钮来调用通过所有已修改字段的路由。

目前,我只能传递一个元素(即{{session.recipe}},这是食谱的ID),但我也想处理修改后的名称和描述。

<a href="/save-recipe/{{session.recipe}}" style="color: black;">
  <button name="button" class="greyishBackground width45 right">
      <p>Save</p>
  </button>
</a>

在index.js中,我正在这样做:

router.get('/save-recipe/:id/', function(req, res, next) {
    var recipe_id = req.params.id; 

    console.log(req.body.name); // doesn't work - undefined
}

由于req.body.name不起作用(未定义),我试图找到一种将更多参数传递给路由的方法,以便以与我处理recipe_id相同的方式来处理它们(即req。 params.id)。

有人可以解释我该怎么做吗? 我可以创建带有名称和描述字段的对象并仅传递该对象吗?我该怎么做?

还是有一种方法可以使 req.body.name 工作?

1 个答案:

答案 0 :(得分:0)

router.get('/save-recipe/:id/:name/:desc', function(req, res, next) {
var recipe_id = req.params.id; 
var recipe_name = req.params.name;
var recipe_name = req.params.desc;
}

req.body.name未定义,因为您没有向服务器发布任何内容。