((node js)graphql API search for query

编程入门 行业动态 更新时间:2024-10-23 07:39:53

((node js)<a href=https://www.elefans.com/category/jswz/34/1770827.html style=graphql API search for query"/>

((node js)graphql API search for query

我一直在为我的Discord机器人处理这个graphql API命令,我终于有它从站点收集我需要的信息。我似乎无法弄清楚如何将搜索范围缩小到单个查询/参数,而不是显示来自API的所有信息。

代码:

const Discord = require('discord.js');
const fetch = require('node-fetch');
const querystring = require('querystring');
const util = require('util')

module.exports = {
    name: 'dose',
    definition: 'find info on drugs',
  },
  module.exports.execute = async(message, args) => {

    const query = querystring.stringify({
      term: args.join(' ')
    });

    let bruh;

    fetch('', {

      method: 'POST',
      headers: {
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        //query: "{ substances { name effects dose { name }  }}}"

        //query: "{substances(offset:0, limit:10) {name effects {name}}}"
        query: "query substances ($effect: String, $query: String, $chemicalClass: String, $psychoactiveClass: String, $limit: Int, $offset: Int) {\n    substances (effect: $effect, query: $query, chemicalClass: $chemicalClass, psychoactiveClass: $psychoactiveClass, limit: $limit, offset: $offset) {\n        name\n        url\n          featured\n        summary\n        addictionPotential\n        toxicity\n        crossTolerances\n    }\n}",
        variables: {
          "effect": "",
          "query": "",
          "chemicalClass": "",
          "psychoactiveClass": "",
          "limit": 4,
          "offset": 0
        },
        other: '{"query":"query effects_by_substance ($substance: String, $limit: Int, $offset: Int) {\n    effects_by_substance (substance: $substance, limit: $limit, offset: $offset) {\n        name\n        url\n   limit\n    offset\n }\n}","variables":{"substance":"","limit":0,"offset":0}}'
      })
    }).then(res => res.json()).then(json => {
      console.log(JSON.stringify(json.data, null, 4));
      message.channel.send("```" + JSON.stringify(json.data, null, 4) + "```");

      let info = json.data + json.extensions;

    });

  }
回答如下:

您可以使用json.data并使用forEach()遍历它,然后,如果您只想要数据的特定部分,则可以添加if语句。我还建议将所有内容都嵌入,使其看起来更好。

如果要使用所有数据:

const embed = new MessageEmbed()

json.data.forEach((data, value) => {
embed.addField(data, value)
})

message.channel.send(embed)

或者,如果您想获得特定零件:

const embed = new MessageEmbed()

json.data.forEach((data, value) => {
if (data === 'chemicalClass') embed.addField(data, value)
if (data === 'psychoactiveClass') embed.addField(data, value)
})

message.channel.send(embed)

更多推荐

((node js)graphql API search for query

本文发布于:2024-05-07 07:17:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1755080.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:graphql   js   node   query   search

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!