Как я могу передать список строк в URL в Express.js - PullRequest
0 голосов
/ 19 февраля 2019

Чтобы передать отдельные параметры в URL, я использую следующее в Почтальоне:

http://localhost:3000/api/prices/:shopId

Это работает!

Теперь, что я хочу сделать, это заменить shopId на Список shopId .

Есть какие-нибудь идеи о том, как я могу это сделать?


Псевдокод:

URL for shopId = 1: http://localhost:3000/api/prices/1

URL for shopId = 2: http://localhost:3000/api/prices/2

Что я должен сделать, чтобы получить оба ShopId 1 и 2 в одномОтвет API?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

По вашему требованию я могу представить пару альтернатив, которые, на мой взгляд, являются лучшими практиками, чем те, о которых вы упомянули.

  1. Отправьте это в теле, используя любой из POSTили PUT.

    URL: http://localhost:3000/api/prices/shopIds

    Body: { shopIds: [1, 2, 3, 4] }

Вы можете получить идентификаторы, например,

const { shopIds } = req.body // shopIds = [1, 2, 3, 4]

или

const shopIds = req.body.shopIds // shopIds = [1, 2, 3, 4]

Если вы хотите использовать GET, используйте параметр запроса

URL: POST http://localhost:3000/api/prices/shopIds?ids=1,2,3,4

Здесь вы можете получить идентификаторы в виде строки изатем преобразуйте их в массив,

const ids = req.query.ids.split(','); // ids = [1 ,2, 3, 4]

Если вы все еще хотите использовать его так, как вы упомянули, он уже получил ответ.Используйте этот метод!

Надеюсь, это поможет!

0 голосов
/ 19 февраля 2019

Ваш лучший способ - передать элементы вашего массива, разделенные символом, которого никогда не будет ни в одном из слов (например, запятая).

Возьмите этот фрагмент, например:

app.get('api/prices/:ids', function(req, res){
    var ids = req.params.ids.split(',');
    console.log(ids); //['shopId1', 'shopdId2']
})

Конечная точка, к которой вы обращаетесь с помощью запроса GET:

http://localhost:3000/api/prices/shopId1,shopId2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...