動かざることバグの如し

静かに頬を伝う涙が 私に知らせる これが初恋と

nodejs

GCPのCloud FunctionsでPuppeteerキャプチャサーバーを構築

マジで簡単だったのでメモ Functionの作成 GCPの管理画面から「Functions」を開く 名前:任意 割り当てるメモリ量:1GB トリガー:HTTP ランタイム:Nodejs 今回は8にした index.jsの中身を以下 const puppeteer = require('puppeteer'); exports.screensh…

Nuxt.jsでQiita API取得して一覧表示するアプリをFirebaseへデプロイするチュートリアル

他のチュートリアルとか、やってみた!だと早速認証周りだとかElement UIとかに手を出してて難しすぎる。 本質的に、一番シンプルな感じで Qiita API v2 認証不要を叩いて リスト表示するだけのアプリをNuxt.jsで作って firebaseに無料デプロイ! までやる。…

Mac OSにnodenvとyarnをインストールする

さらばnodebrew 今までnodebrew使ってたけど、コマンド体型がrbenvやpyenvと違って独特である。バグとかはなくて安定はしていたが、やはり*bnv系で揃えたほうがいいなあということで、一式をnodenvに合わせた 環境 Mac OS Mojave nodenvのインストール 今ま…

オレオレ .eslintrc.yml 晒す

晒す env: commonjs: true es6: true node: true extends: standard globals: Atomics: readonly SharedArrayBuffer: readonly parserOptions: ecmaVersion: 2018 rules: indent: - error - 2 linebreak-style: - error - unix quotes: - error - single sem…

Puppeteerでリダイレクト元URLとリダイレクト先URLを取得する方法

環境 puppeteer 1.12 nodejs 10 やりたいこと Puppeteerでリダイレクトを記録したい コード すでにいろいろ記事は上がっているが、以下。ポイントはredirectChain()使うところだろうか。 const puppeteer = require('puppeteer'); (async () => { const brow…

DockerでNodejsとyarnをなるべくシンプルにインストール

環境 Docker 18 docker-compose 1.23 debian系 やりたいこと とあるDockerイメージにNodejsをインストールすることにした。普通ならapt-get install nodejsとパッケージ管理システム経由でインストールするのが定石だが、理由があってイメージサイズを小さく…

Nodejsのasyncでリトライを行いたいなら「async-retry」

環境 nodejs v10 やりたいこと 例えばあるURLへHTTPリクエストして、失敗した場合にリトライしたい。けど失敗したときのレスポンスコードが500のときはやり直すけど、404のときは無駄なのでそのままエラーにしたい。 いいライブラリがないか探していたところ…

Puppeteerで一定回数スクロールしまくる

環境 Nodejs 10 Puppeteer v1.12.2 概要 言わずとしれたヘッドレスで動作するChromeこと、Puppeteer で、今回は長いページで下までスクロールしたい。普通に考えてwindow.scrollTo(0,1000);をpage.evaluate()するのが一般的なのだが、訴求面と見ていると、ス…

Nodejsで変数確認したりデバッグする方法

環境 nodejs 10 やりたいこと rubyのbinding.pryみたいにプログラムコードの途中で実行を止めて変数の中身とか参照したい やり方 例えば以下のようなjavascriptを用意する。 const val1 = 1; const val2 = 2; debugger console.log(val1 + val2); 1つ目のポ…

Node.jsでコマンドライン引数処理を行うならcommand-line-argsがよさげ

最近だとコマンドラインツールはGolangで書かれることが多くなっていたが、Nodejsでコマンドラインで処理を受け付けたい、ということも全然あると思う。 そのときに必ず当たる壁がコマンドライン引数の処理である。 引数のパース、必須項目の扱い、ヘルプの…

NodejsでファイルからMD5ハッシュを取得したい

md5はこういうの ~/tmp $md5 tmp.wav MD5 (tmp.wav) = a7b3e6a4865d0b5ae39db05371008c2a をNodejsで求めたい 環境 nodejs 8 けど見てる感じ4以上なら動きそう 10でも動いたし コード const crypto = require("crypto"); const fs = require("fs"); function…

NodejsでGoogle Cloud Storageへファイルをアップロードしてみる

環境 nodejs v8.8.1 ここではAWSでいうS3にあたるGoogle Cloud StorageへNodejsでローカルのファイルをアップロードしたりしてしてみる。 サービスアカウントの作成 まずは権限設定 アクセスに必要なキーを含むJSONファイルをゲットする必要がある。 GCPコン…

ヘッドレスブラウザPuppeteerで指定時間待たせる方法

いわゆるwait()とかsleep()とかdelay()って呼ばれてるやつ。 nightmareなら確かwait()だったかな? Puppeteerくんには残念ながら今のところそういった便利関数の実装はないので自分で作る必要がある。 const puppeteer = require('puppeteer'); async functi…

初心者がNodeJSでBabelとgulpをインストールする

ES2015とかなんぞいって奴がちゃんと1から環境の構築をしてみる 環境 bash-3.2$ node -v v5.12.0 bash-3.2$ npm -v 3.10.6 babelのインストール まずはbabelのインストールから始める。 npm install-D babel-cli 適当にa.jsでもつくって以下 const myfunc =…

Slackのbotを30秒で作成する

環境 mPro:botkit_test thr3a$ sw_vers ProductName: Mac OS X ProductVersion: 10.11.5 BuildVersion: 15F34 mPro:botkit_test thr3a$ npm -v 3.8.3 mPro:botkit_test thr3a$ node -v v5.10.0 APIキーの取得 ココからキーを取得して控えておく インストール…