如何在Nest js中迭代@Query()对象

问题描述 投票:3回答:2

有没有办法,如何通过q​​azxsw poi注释迭代我们在控制器中得到的对象?

我们在GET中有动态计数和查询参数的名称,所以我们需要获取整个@Query()对象并迭代它们以了解我们确切拥有的paramas。

但是,如果我想迭代该对象,我得到的错误是该对象不可迭代。

知道怎么做吗?

javascript node.js typescript nestjs
2个回答
4
投票

您可以使用@Query()获取查询对象的键数组。然后,您可以遍历此数组键:

Object.keys()

1
投票

在嵌入式控制器中,使用@Get() getHello(@Query() query) { for (const queryKey of Object.keys(query)) { console.log(`${queryKey}: ${query[queryKey]}`); } } / @Query() / @Body()装饰器而不带参数将返回键值javascript对象。

例如:

@Headers()

参考:

// request url: http://example.com/path-foo/path-bar?qf=1&qb=2 @Post(':foo/:bar') async function baz(@Query() query,@Param() param) { const keys = Object.keys(query); // ['qf', 'qb'] const vals = Object.values(query); // ['1', '2'] const pairs = Object.entries(query); // [['qf','1'],['qb','2']] const params = Object.entries(param); // [['foo','path-foo'],['bar','path-bar']] // these are all iterate able array // so you can use any Array's built-in function // e.g. for / forEach / map / filter ... }

Object

Object.keys()

Object.values()

Object.entries()
© www.soinside.com 2019 - 2024. All rights reserved.