Просто потому, что я не вижу здесь примера C ++ 11, я остановлюсь и опубликую этот хороший пример из здесь . После поиска это самый яркий пример, который я смог найти.
template
void Eval( const F& f ) {
f();
}
void foo() {
Eval( []{printf("Hello, Lambdas\n");} );
}
void bar() {
auto f = []{printf("Hello, Lambdas\n"); };
f();
}
По вашему требованию я могу придумать пару альтернатив, которые, на мой взгляд, являются лучшей практикой, чем вы упомянули.
Отправьте его в теле, используя любой из 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]
Если вы все еще хотите использовать его так, как вы упомянули, он уже получен. Используйте этот метод!
Надеюсь, это поможет!
Ваш лучший способ - передать элементы вашего массива, разделенные символом, которого никогда не будет ни в одном из слов (например, запятая).
Возьмем этот фрагмент, например:
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