Kuzunoha-NEのブログ

プログラミングなどの勉強をしてます

【検索】検索で公式ドキュメントを掘り起こしたいとき

こんばんは葛の葉です。 まぁ私もこんな取るに足らないブログ書いてる私がこんなこと言うのもなんなんですけど、Google検索で調べものをしているときにブログや某IT系記事がちょっと邪魔くさいなって思うときがあるんですよね。モジュールやミドルウェアに何…

【TypeScript】おぉ!って思ったJSの書き方

こんばんは葛の葉です。 体調を崩したので今回も省エネです。 JavaScriptを書き始めてはや9ヶ月ぐらいなんですけど、最近、これいいなぁって思うJSの構文を書いていきます。 スプレッド構文 Mozillaのリファレンスはこちら。 developer.mozilla.org これは配…

【TypeScript】Reactを触っている

こんばんは、葛の葉です。 最近、個人でReactを触っています。 ja.reactjs.org Reactはもはや説明不要なほど有名なフロントエンド向けのJSフレームワークです。 JSX(TypeScriptならTSX)を使うことが独特。 ReactはJSXという専用の拡張構文を使用します。 ja.…

【TypeScript】JSから投げるhttpリクエストのエラーコードHPE_INVALID_CONSTANTを出力

こんばんは葛の葉です。 URLを集めている業務がありまして、httpリクエストを投げてステータスコードを集めているのですが、そのときに時々に発生したエラーコード「HPE_INVALID_CONSTANT」に随分悩まされました。 そのときにこのツイートを見かけてクララが…

【TypeScript + AWS】CloudWatchLogsからデータを引っ張りたかったんだ

こんばんは、葛の葉です。 今回はAWSのCloudWatchLogsにたまったログに検索をかけ、それを吐き出すということをやっています。いくつか大変なことがあったので、それを書いていこうと思います。 CloudWatchLogsクラスからインスタンスを作る前に awsのsdkを…

【TypeScript】filterで頑張る

こんばんは葛の葉です。 Javascript配列のfilterの使い方を勉強します。Arrayオブジェクト内のメソッドであるfilterを使って条件に満たす要素を取り出し、新たに配列を作成します。 developer.mozilla.org 配列の各要素に対して実行するテスト関数です。この…

【雑記】自分のサービスを作りたい

こんばんは葛の葉です。 このブログ、自己研鑽として始めることとなってもうそろそろ1年と9ヶ月になるんですね。 そろそろ自分のサービスを作りたいなぁと思っていて、ブログに書き込む時間を減らして、自分の作りたいものに時間を当てたいなぁと思ってい…

【TypeScript】Promise.allで頑張る

こんばんは。今回はPromise.allを使ってみます。MongoDBも使います。 developer.mozilla.org 記載の通り、配列に入ったPromiseを全部解決するまで待つという動きが出来るようになります。 Promise.allを使わないやりかた import {MongoClient, MongoClientOp…

【TypeScript】Puppeteerで言語を固定できるみたい

こんばんは、葛の葉です。 今回は疲れているので省エネです。 起こったこと PuppeteerでE2Eテストをやっててヘッドレスだとテストが通らないのに、ヘッドレスをやめるとテストが通るという現象がおきました。そしてそれはタイトルの文字が正しく表示されるか…

【TypeScript】URLパラメータからJSを実行する

こんばんは、葛の葉です。 今回はURLからjsを起動してみます。悪用厳禁ってやつですね。 こんなイメージ hogehogeというパラメータに渡したデータをhtml上に表示するようなWebサーバーを作ります。今回もnodeの基礎的なライブラリであるhttpを使います。また…

【TypeScript】Mongodbが持つ数字を正規表現で取ろうとしたら出来なかった

こんばんは葛の葉です mongodbのフィールドにある数字を取り出そうと正規表現を使ったのですが、全くヒットせず、正規表現の書き方が間違ってるのかなんなのかがわからず、暫く格闘を続けるというアホみたいなことをしていました。 MongoDBの公式について Pr…

【Vue.js】ちょっとVueを触っている

こんばんは、葛の葉です。 Vue.jsの本を読んでちょっと勉強中です。結構楽しいですね。個人開発のWebアプリケーションを作ろうと思っているのですが、Vueでこさえることが出来たらなぁと思ってます。 ちょっとしたFizzBuzzのゲームを作る。 ランダムで出力さ…

【TypeScript】CookieとSessionとSessionIDを使ったログイン情報の保持

こんばんは、葛の葉です。 今回はCookieとSessionとSessionIDを使ったログイン情報の保持を実施します。 前述 普段我々が使用しているWebページでは、ログインを必要とするページが多いかと思います。ログインに一回成功するとその成功したログイン状態とい…

【TypeScript】TypeScriptでBasic認証をやってみる

こんばんは、葛の葉です。 今回はBasic認証をやってみます。 Basic認証とは Basic認証とはHttpに搭載されている認証方法の一つになります。Httpヘッダーに認証のためのユーザー情報とパスワード情報をBase64にて暗号化して送付します。その値をサーバーが受…

【Typescript】Expressで任意のステータスコードで配信する。

こんばんは葛の葉です。 今回はExpressで任意のhttpステータスコードを送信する機能を書きます。 github.com import e from 'express'; import {Request, Response} from 'express'; const app = e(); app.get('/', (req:Request, res:Response)=>{ // 200 s…

【GitHub】GitHubにActionっていうCIツールが追加されてたよ

こんばんは葛の葉です。 いつものアホ面でGithubを眺めてたら見慣れないのがあった。GitHubアクションというものらしい。そういえば邪魔くさいポップが出ていたっけ。ちょっと触ってみることにした。 help.github.com GitHub Actions では、エンドツーエンド…

【MySQL】トランザクションを少し勉強しよう

こんばんは、葛の葉です。 今回はMySQLを使ってトランザクションを勉強しようと思います。 トランザクションとは データベースはデータを保存しています。プログラマーやプログラムを使うユーザーはデータベースに対して、データを閲覧、追加、変更、削除を…

【雑記】OSSのIssueにバグ再現コードを提供しよう

こんばんは葛の葉です。 さて、とあるOSSを使っていたところ、ちょっと重いバグが出ていて、しかも開発者がそれを再現できないというものがありました。 そこで時間を掛けて調査したところ、そのバグを再現できる環境を作成することが出来ました。早速、開発…

【Typescript】PuppeteerとJestでE2Eテストを作る

こんばんは葛の葉です。 最近はPuppeteerとテストコードを使用しE2Eテストを書いています。今回はそのことについて記載してきたいと思います。 今回のソースコードはこちら github.com E2Eテストとは E2EテストとはEnd to End Testのことで、Webブラウザなど…

【TypeScript】ifとimport

こんばんは、葛の葉です。 さて、TypeScriptで条件によってモジュールをインポートする、あるいはインポートしないようにしたい場合があるかと思います。 if(true){ import {hoge, moge} from "./ex"; } // error TS1232: An import declaration can only be…

【JavaScript】非同期処理とTryCatch

こんにちは、葛の葉です。 JavaScriptにおける非同期処理とtry catch文についてみてみましょう。一般的に、try文内で発生したErrorはcatch文に移動します。 try { throw new Error('Test Error'); console.log('hogehoge'); } catch (error) { console.log('…

【Markdown】シンタックスハイライトっていうのを使いましょう

葛の葉です。 マークダウンでしばしば色のついたコード書きを見るかなぁって思います。 import {hogehoge} from "./hogehoge" console.log(JSON.stringify(hogehoge)); let hugahuga; for ( let piyo of piyos ){ hugahuga += piyo; }; これはシンタックスハ…

【MongoDB】DockerComposeでクラスター構成のMongoDBを作る

こんばんは葛の葉です。今回から土曜更新に変更します。 さて、今回はDockerComposeでクラスター構成のMongoDBを構築します。 imageのバージョン mongo:4.2.1-bionic DockerComposeの記述 クラスター構成のDBを構築するのだったら、ネットワークやら何やら色…

【C言語】ファイル読み書きを頑張るぞ

こんばんは葛の葉です。今日もC言語です。 FILE型を使うんざ # include <stdio.h> これが宣言されていればFILE型は使えるようになってます。ポインタ変数を渡して作成しましょう。FILE型で作ったポインタをfopen関数に渡してあげるとファイルが読み込まれるようです。</stdio.h>…

【C言語】関数へのポインタをちょっと

こんばんは葛の葉です。 基本情報に備えてC言語をちょろっと勉強しています関係で、さっきちょろっと勉強した関数ポインタを書いてみることにします。 Version $ gcc --version gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 Copyright (C) 2017 Free Software…

【TypeScript】Webpackでフロントにnpmモジュールを使う

こんばんは、葛の葉です。 今回はWebpackを使います。 Webpackとは Webpackとはざっくり説明すると、複数のJavascriptをまとめて一つにしてくれるものです。これを使用することでnpm経由でインストールしてきたモジュールをフロントで使用することができます…

【TypeScript】PostgreSQLとExpressをつなぐ

こんばんは、葛の葉です。 今回はPostgreSQLとExpressを繋いでみましょう。 諸々のバージョン postgres (docker) postgres:11.5-alpine node (docker) 8.16.1-alpine pg(npm package) 7.12.1 データベースの情報 今回はPostgresを使用します。Herokuでも使え…

【TypeScript】ExpressとApplicationFactory

こんばんは葛の葉です。 さて、ExpressでApplicationFactoryを作りましょう。 以前Flaskで作ったようなものを作成します。 kuzunoha-ne.hateblo.jp version express == 4.17.1 プログラム ディレクトリはこんな感じなのだ . ├── app.ts └── factory.ts Expre…

【JavaScript】プリントデバッグあれこれ

葛の葉です。 JavaScriptでプリントデバッグあれこれのことを書きます。 とりあえずみて class Piyo { constructor(num, str){ this.num = num * 3; this.str = str; this.test = ["唐揚げ", "焼き芋", "醤油指し"] } } const Test1 = "hogehoge"; const Tes…

【JavaScript】SocketIOで通信しよう

こんばんは葛の葉です。 今回はSocketIOでJavaScriptとPythonを通信してみます。 JavaScript側(サーバー側) 前回のWebAPIの記事の際はJavaScriptがクライアント側でしたが、今回はサーバー側に回ります。 SocketIOで通信をする場合、Httpでの通信を確立し…