Panda Noir

JavaScript の限界を究めるブログでした。最近は幅広めに書いてます。

NodeでGraphQLサーバーにアクセスしてみる

Nodeだとカンタンにアクセスできる

$ npm i --save superagent をしたらあとは以下でアクセスできます。

const request = require('superagent');

request
    .post('http://localhost:8080')
    .send(`
query {
    user(name: "香風智乃") {
        name, age
    }
}`)
    .end((_, res) => {
        console.log(JSON.parse(res.text));
    });

めちゃくちゃカンタンですよね。

おまけ: PHPでアクセスする方法

適宜php-curlをインストールしてphp.iniをいじってください。

<?php
$url = "http://localhost:8080";

$curl = curl_init($url);

$options = array(
  CURLOPT_HTTPHEADER => array( 'Accept: application/json' ),
  CURLOPT_POST => true,
  CURLOPT_POSTFIELDS => 'query {user(name: "香風智乃"){name, age}}',
  CURLOPT_RETURNTRANSFER => true,
);

curl_setopt_array($curl, $options);

$result = curl_exec($curl);

echo $result;

curl_close($curl);

Nodeよりは可読性が落ちますが、読みやすいと思います。

今日も今日とて「生誕○日記念祭」やろうぞい!

f:id:panda_noir:20181206152848p:plain

あなたは生まれてから何日が経ちましたか?20歳なら約7,300日、30歳なら約10,000日、40歳なら約14,600日だそうです。

ここまで数字が大きくなってくると、N進法(N=2〜32)にしたときに「何かそれっぽい数字」になってる可能性が高いとは思いませんか?つまり「毎日ゾロ目とか連番とか"それっぽい"数字になるなら毎日が記念日じゃん!」

ということでやっていってみましょう。

続きを読む

localStorageを意識せずに使えるようなライブラリを作りました。

localStorageをgetItemしたりsetItemしたりとかめんどくさいですよね?そこで、はじめに設定したら、以降はlocalStorageを全く意識する必要がなくなるライブラリを作りました。

f:id:panda_noir:20181204134730p:plain

(イラスト: 複数のPCサーバーのイラスト | illalet(イラレット))

続きを読む

RDB脳でもMongoDBを使い倒したい!

RDBリレーショナル・データベース強すぎでは???」と思っていました。MongoDBに出会うまでは

MongoDBはJSONベースでやりとりができるので、かなりJSerにやさしくて涙が出ちゃいました(出てない)。

しかし、RDBをかじっていたせいで脳が凝り固まっており、「どうやって設計すれば良いんだ??」と途方にくれていました。しかし、そこでMongoDBにおける関連(Relation)のスキーマ設計という記事を見つけてしまい、神の意思を感じました。

先に言っておきますが、「製品版のときはRDBでキッチリと管理したい」「けどまだスキーマが固まってないプロトタイプの段階ではMongoDBでゴリゴリしたい」人なのでRDB派とも共存していきたいです。

続きを読む

複数イベントを組み合わせたオリジナルイベントをカンタンにつくる方法

たとえば「これらのラジオボタンが全てクリックされたあとに発火する」みたいなイベント、普通に作ろうとするとフラグを管理するなどしなければなりません。しかし、これをカンタンにする方法を見つけたのでご紹介します。

続きを読む