最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

((node js)graphql API search for query

网站源码admin20浏览0评论

((node js)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)
发布评论

评论列表(0)

  1. 暂无评论