コンパイラかく語りき

import { Fun } from 'programming'

Node.js

cloudfoundry/nodejs-buildpack v1.6.19にて、yarnによるpackage installがこける問題と対処

nodejs-buildpack v1.6.19 2018/02/26、cloudfoundyのnodejs-buildpackがv1.6.19へとバージョンアップデートされました。 変更: nodejs-buildpack/manifest.yml - Add yarn 1.3.2, remove yarn 1.2.1 [#155490241] この変更によって、buildpackが依存するYar…

RethinkDBで「DBが存在して無ければ作る」「テーブルが存在して無ければ作る」

※ Nodeで書いてますが、ReQL自体は言語フリーなので他言語の方にも参考にはなると思います。 初期化時にありがちな、DBとテーブルを有無をチェックしながら作成するという処理。 DB作成 // 無ければDBを作成 r.dbList().contains('messages').do((containsDb…

node.jsでRethinkDBを扱うためのORM "Thinky" を試してみた

Thinkyというnode.jsでRethinkDBを扱うためのORMを試してみました。 RethiknDB: https://www.rethinkdb.com/ Thinky: https://thinky.io/ 参考ページ 公式のドキュメントのクイックスタートというページを参考にしてみました。 https://thinky.io/documentat…

RethinkDBでGeoJSON操作

RethinkDBでGeoJSONをゴニョゴニョする方法について。 サンプルコードはJavaScriptで書いてありますが、Ruby, Python, JavaでもOKです。 GeoJSONとは JSONをベースとした、位置情報データフォーマットです。 GEOJSON (英語) GeoJSON フォーマット仕様 ReQL -…

RethinkDBでgeojsonをupdateする際の注意点

RethinkDB(ReQL)でのgeojsonメソッドについて。 insertならば以下のように問題なく動く。 r.table("hoge").insert({ "location": r.geojson({ type: "Point", coordinates: [-71.063611, 42.358056] }) }) updateで同じことをすると、エラーが出る。 r.tab…

Express, MongoDBアプリケーションにRedisを導入する

やること ExpressとMongoDBで作成するアプリケーションにRedisを導入します。 作るもの 図書館を模したアプリケーションを作成します。 データ -> 書籍 データへのリクエスト -> 書籍が作成されたり、取り出されたり データストレージ(MongoDB)-> 書棚 キ…

nodemailerでconnect ECONNREFUSED 127.0.0.1 が出てしまう場合の対応(Gmail対応)

ローカル開発中にnodemailerのエラーに遭遇。 connect ECONNREFUSED 127.0.0.1 調べてみたら、設定が足りていなかった。 SMTP設定 SMTPのconfigを設定する。 gistbe104f76b8a98f462f30be21c99745f1 これでひとまず、自分から自分へのgmail送信はできた。自分…

node-cronはTimeZone指定ができるよ

node.jsアプリケーションでcronを実行する場合、node-cronを使うことが多いです。 github.com cronの実行時間を指定する際、TimeZoneを指定できると気づいたのでメモ。 Asia/Tokyoタイムゾーン Asia/Tokyoタイムゾーンの例は以下の通り。 gistfbbc9d099cbbc8…

nodebrew install でsyntax errorが出たら、nodebrew install-binaryを試す

nodebrew install したら、syntax errorが出てインストールに失敗した。 hasen.hatenablog.com Pythonのバージョンが違うのかなと思って調べてみたら、確かに3系を使っていた。 ところがpyenvで2系に戻してみても、install時にsyntax error。結果は変わらず…

Qiitaの"Node.jsのOAuthを使ってGoogleDriveAPIを叩いてみた"をやってみる

ちょっと仕事で必要になったので、練習。 参考: qiita.com

いまさらnpmのfetchパッケージをつかってみた

まず、これを読みました。 qiita.com fetchなんてものがあるんですね。Podcastや勉強会でも耳にするので、実際に使ってみました。 fetchの種類 fetchにはいくつかの種類があるそうで。 まず、ネイティブのfetch。つまり、ブラウザが実装しているwindow.fetch…

【Node.js】querystringとはなんなのか

Node.jsの話。querystringというデフォルトのモジュールを知ったのでメモ。 公式Doc : Query String Node.js v6.1.0 Manual & Documentation クエリ文字列とは そもそも。query string(クエリ文字列)とは? e-words.jp URLの末尾に付くアレですね。キーバ…

【glob】ignoreで除外ファイルを指定

globで初めてignoreを指定したのでメモ。 まずはコード。 gist2e4b810930e2c89a05b282b1f686734b ※ elmプロジェクトを例にしました。通常は、node_modules/**/*.jsとかにすれば良さそう。 ignoreする場合は、第二引数にオブジェクトを渡せばOK。キーをignore…

Elmのコンパイルにウォッチ機能がないから外部ファイルを作った

残念ながらElmのコンパイルにはwatchオプションがありません。つまり、「ファイルの変更を感知してコンパイルを行う」といったことができません。 そこで、Nodeの標準パッケージを利用して、擬似的なwatch機能を作ってみました。 gist8b7482df27f3e1b80f4823…

【node.js】execでunixコマンドを実行する

Node.jsのお勉強です。 Nodeの標準パッケージのうち、chukd_processというものを使えば、unixコマンドが利用できると知ったのでメモ。 Child Process Node.js v0.11.11 Manual & Documentation コマンド実行関数 ざっと見たところ、コマンドを実行できる関数…

【node.js】fs.watchでファイルを監視

タスクランナーやバンドラのwatch機能ってあるじゃないですか。あれらはもちろん知っていたのですが、nodeの標準パッケージにもwatchがあるんですね。初めて知りました。 というわけでメモ。 fs.watch 使い方:fs.watch(filename[, options][, lister]) 指定…

ちょっとES2015を書いて、手元で実行させたいときにやること

メモ書きです。 npmのパッケージをインストールして、それを手元で作動させてみる。みたいな時があると思います。 タスクランナーを走らせたりバンドルするまでもないけど、さくっとトランスパイルしたい。 そんな時、babelをターミナルで動かすと便利だなと…

【Node.js】fs.lstatでファイルの状態を取得する

Nodeの標準パッケージであるfsに、lstatという関数があります。 これを使えば、任意のファイルの状態を調べることができます。 File System Node.js v5.9.0 Manual & Documentation 以下のように、第一引数にパスを指定して、第二引数にコールバックを指定し…

【Node.js】FileSystem.rmdir vs rimraf

Nodeを書いていて、ディレクトリを削除したいときがあるかもしれません。例:ビルド前にディレクトリクリーン。 そんなときに使えるのがrimrafというパッケージ。 github.com Unixコマンドのrm -rfと同じ挙動が実現できます。 でも、Nodeの標準パッケージにf…

webpack上でglobを使う

webpack上でglobを使う方法について、業務で触れることがあったのでメモ。 インストール なにはともあれインストール。 $ npm init -y $ npm install webpack glob ディレクトリ構造 ディレクトリを以下のように作りました。 src/にJSファイルが格納されてい…

Node.jsフレームワークの新興勢力、nodalで英単語アプリケーションを作る その1

先日、Node学園 19時間目に参加した際にnodalというNode.jsのフレームワークを知りました。 というか、自分、Expressしか知りませんでした。しかも名前だけ。KoaとかHapiとか、色々あるんですね。 Node学園では、nodalは新進気鋭の新興勢力として紹介されて…

【nodebrew】改めてNode.jsのバージョン管理

WebPack周りで、nodeのバージョンが古いばかりにエラーが出てしまいました。 ここでnodebrewをインストールして、Node.jsのバージョン管理をしっかりとやろうと思います。 参考にした記事がこちら。 qiita.com 一度nodeを削除する いま入ってしまっているnod…

WebPack公式チュートリアルを消化する(前半)

WebPackの公式チュートリアルを消化していきます。WebPackはすでに何度か触っていますが、一度基本から学んでみます。 過去記事↓ chuckwebtips.hatenablog.com インストール 何はともあれ、WebPackをインストールします。 今まではpackage.jsonに記述してロ…

君はもうJavaScriptの標準入出力を体験したか!?

僕は先日はじめて体験しました(遅い) 自分ができるようになったのを良いことに、自慢気に書いていこうと思います。JavaScriptの標準入出力について。 標準入出力って?? Web系の人にはピンと来ないかもしれませんね。 ターミナル(コマンドライン)上での…

npmとはいったい...

どうもchuckです! 昨日はNode.jsについて書きました。 <a href="http://chuckwebtips.hatenablog.com/entry/2015/05/27/180000" data-mce-href="http://chuckwebtips.hatenablog.com/entry/2015/05/27/180000">Node.jsをインストールして、とりあえずHello Worldしてみた - コンパイラかく語りき</a>chuckwebtips.hatenablog.com さてNode.js関連でよくnpmやnvmという言葉を見かけます。 これっていった…

Node.jsをインストールして、とりあえずHello Worldしてみた

どうも!chuckです。 Node.jsをインストールしてみたのでメモ。 ○Node.jsとは こちらのサイトによると、、 Node.jsは高速でスケーラブルなネットワークアプリ ケーションを 簡単に構築するためにChrome の JavaScript 実行環境 上に構築されたプ ラットフォ…