Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在strapi中修改响应对象_Javascript_Node.js_Strapi - Fatal编程技术网

Javascript 在strapi中修改响应对象

Javascript 在strapi中修改响应对象,javascript,node.js,strapi,Javascript,Node.js,Strapi,我想得到一个修改后的响应对象。例如,如果没有角色,我不知道如何获取用户对象 默认响应为: { "id": 6, "username": "username", "email": "user@email.com", "provider": "local", "confirmed": true, "blocked": false, "role": { "id": 2, "name": "Authenticated

我想得到一个修改后的响应对象。例如,如果没有角色,我不知道如何获取用户对象

默认响应为:

{
    "id": 6,
    "username": "username",
    "email": "user@email.com",
    "provider": "local",
    "confirmed": true,
    "blocked": false,
    "role": {
        "id": 2,
        "name": "Authenticated",
        "description": "Default role given to authenticated user.",
        "type": "authenticated"
    }
}
现在,我希望得到相同的响应,而不使用role属性

{
    "id": 6,
    "username": "username",
    "email": "user@email.com",
    "provider": "local",
    "confirmed": true,
    "blocked": false
}

目前,除非更改权限插件提供的UserController,否则无法在RESTAPI中执行此操作,这是不推荐的

然后,您可以使用Strapi提供的GraphQL插件,这样您就可以只查询客户端所需的字段


关于如何使用GraphQL插件的文档如下。

对于仍在努力解决此问题的人:

strapi的最新版本确实支持自定义查询,您可以传递一个数组,其中包含要填充的关系的所有名称(仅关系!)

如果您不想填充任何关系,可以将其保持为空,那么控制器将如下所示:

module.exports = {    
UserWithoutRoles: ctx => {
      return strapi.query('user').findOne({ id: ctx.params.id }, ['']);
    }
}
module.exports = {    
UserWithoutRoles: ctx => {
      return strapi.query('user').findOne({ id: ctx.params.id }, ['role']);
    }
}
如果您确实希望填充它,它将如下所示:

module.exports = {    
UserWithoutRoles: ctx => {
      return strapi.query('user').findOne({ id: ctx.params.id }, ['']);
    }
}
module.exports = {    
UserWithoutRoles: ctx => {
      return strapi.query('user').findOne({ id: ctx.params.id }, ['role']);
    }
}
另见:
[

有没有办法将自定义对象作为响应返回?例如,我不想从查询返回经过清理的对象,而是想返回一个包含该响应和其他属性的对象。如果我
返回{I:obj,j:obj}
I get a unauthorized Error默认情况下限制对新自定义路由的访问。您是否尝试对这些路由启用权限?这可以通过编程方式完成(请参阅),也可以在“角色和权限”下的“管理”面板中完成