質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
GraphQL

GraphQL は、アプリケーション・プログラミング・インタフェース (API) 向けのクエリ言語およびサーバーサイドランタイムです。APIの速度、柔軟性、開発者にとっての使いやすさを向上させるために設計され、データを複数のデータソースから取得するリクエストを1つのAPI呼び出しで構成できます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

0回答

712閲覧

Node.jsでMySQLから取り出した値を別の処理(GraphQL)で使いたい

DeepRoastBeans

総合スコア79

GraphQL

GraphQL は、アプリケーション・プログラミング・インタフェース (API) 向けのクエリ言語およびサーバーサイドランタイムです。APIの速度、柔軟性、開発者にとっての使いやすさを向上させるために設計され、データを複数のデータソースから取得するリクエストを1つのAPI呼び出しで構成できます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

1クリップ

投稿2021/10/02 03:55

1.やりたい事: Node.jsを使ってMySQLのデータをGraphQLで公開したい

2.躓いているところ: mysqlのconnection.queryのコールバック関数の中で、mysqlから取得したjsonでjson.filterを実行しようとすると、dataがnullで返却される

Nodejs

1var express = require('express'); 2var express_graphql = require('express-graphql').graphqlHTTP; 3var { buildSchema } = require('graphql'); 4var mysql = require('mysql'); 5 6var schema = buildSchema(` 7 type Query { 8 address(zip_code: String!): Address 9 }, 10 type Address { 11 zip_code: String 12 pref_name: String 13 city_name: String 14 town_name: String 15 area_name: String 16 } 17`); 18 19var getAddress = function(args){ 20 21 var zip_code = args.zip_code; 22 23 const connection = mysql.createConnection({ 24 host: 'localhost', 25 user: 'hoge', 26 password: 'fuga', 27 database: 'foo' 28 }); 29 connection.query( 30 'SELECT * FROM master_zip', 31 (error, results) => { 32 var db_results = JSON.parse(JSON.stringify(results)); 33 34 return db_results.filter(address => { 35 return address.zip_code == zip_code; 36 })[0]; 37 } 38 ); 39} 40var root = { 41 address: getAddress 42}; 43 44var app = express(); 45app.use('/graphql', express_graphql({ 46 schema: schema, 47 rootValue: root, 48 graphiql: true 49}));

query

1query getSingleAddress($zip_code: String!) { 2 address(zip_code: $zip_code) { 3 pref_name 4 city_name 5 } 6}

variable

1{ 2 "zip_code": "1000001" 3}

result

1{ 2 "data": { 3 "address": null 4 } 5}

connection.queryの中では書くべきではないのでしょうか?
間違っている点や良い方法など教えて頂きたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問