как обрабатывать несколько параметров в экспресс-маршрутах - PullRequest
0 голосов
/ 13 мая 2019

Я занимаюсь разработкой веб-сайта с использованием экспресс-маршрутизации и обработки запросов 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}}, который является идентификатором рецепта), но я также хотел бы обработать измененное имя и описание.

<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 Ответ

1 голос
/ 13 мая 2019
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 не определено, поскольку вы ничего не публикуете на сервере.

...