Node.js
Next.js で作成した API が別ドメインからアクセスされる時、CORS の問題が発生すると思います。 対応策について調べてみたところ、設定ファイルである next.config.js の header 項目が利用できる、との情報を見つけました。 nextjs-ja-translation-docs.ve…
> console.log(new Array(120).fill('foo')) // 120個の要素 'foo' を持つ配列を表示 [ 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'foo', 'fo…
プロジェクトの Node.js v18 にアップグレードした。 すると、storybook のビルドが通らなくなってしまった。 $ npm run storybook 「wdm」: wait until bundle finished: node:internal/crypto/hash:71 this[kHandle] = new _Hash(algorithm, xofLen); ^ Erro…
GithubActions で Node.js を利用する際に、バージョン情報をベタ書きしていることはあると思う。 それを動的化する方法。 例えば、 nvm を利用していて .nvmrc ファイルが存在する場合、node-version-file: '.nvmrc' を指定すれば OK。 jobs: build: steps:…
Mongoose のドキュメント取得に関して。空配列を持ったドキュメントを取得する方法。 例えば、以下のようなデータから id: 2 のデータのみ取得する。 { id: 1, items: ['foo'] } { id: 2, items: [] } これらのデータを Data スキーマとすると、以下のように…
概要 Mongoose には ref という機能がありまして、他のコレクションのドキュメントへの参照 ID を持つことができます。 ref は populate を使って解決します。 この記事では、ネストされた ref を解決する方法について書きます。 参考: Populate - mongoosej…
Mongoose の upsert 便利ですよね。正しくは、upsert: true オプションですね。ドキュメントが存在しなければ作成、存在すれば更新をしてくれます。 参考: How do I update/upsert a document in Mongoose? - stackoverflow.com さてそんな upsert を行う時…
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…
※ Nodeで書いてますが、ReQL自体は言語フリーなので他言語の方にも参考にはなると思います。 初期化時にありがちな、DBとテーブルを有無をチェックしながら作成するという処理。 DB作成 // 無ければDBを作成 r.dbList().contains('messages').do((containsDb…
Thinkyというnode.jsでRethinkDBを扱うためのORMを試してみました。 RethiknDB: https://www.rethinkdb.com/ Thinky: https://thinky.io/ 参考ページ 公式のドキュメントのクイックスタートというページを参考にしてみました。 https://thinky.io/documentat…
RethinkDBでGeoJSONをゴニョゴニョする方法について。 サンプルコードはJavaScriptで書いてありますが、Ruby, Python, JavaでもOKです。 GeoJSONとは JSONをベースとした、位置情報データフォーマットです。 GEOJSON (英語) GeoJSON フォーマット仕様 ReQL -…
RethinkDB(ReQL)でのgeojsonメソッドについて。 insertならば以下のように問題なく動く。 r.table("hoge").insert({ "location": r.geojson({ type: "Point", coordinates: [-71.063611, 42.358056] }) }) updateで同じことをすると、エラーが出る。 r.tab…
やること ExpressとMongoDBで作成するアプリケーションにRedisを導入します。 作るもの 図書館を模したアプリケーションを作成します。 データ -> 書籍 データへのリクエスト -> 書籍が作成されたり、取り出されたり データストレージ(MongoDB)-> 書棚 キ…
ローカル開発中にnodemailerのエラーに遭遇。 connect ECONNREFUSED 127.0.0.1 調べてみたら、設定が足りていなかった。 SMTP設定 SMTPのconfigを設定する。 gistbe104f76b8a98f462f30be21c99745f1 これでひとまず、自分から自分へのgmail送信はできた。自分…
node.jsアプリケーションでcronを実行する場合、node-cronを使うことが多いです。 github.com cronの実行時間を指定する際、TimeZoneを指定できると気づいたのでメモ。 Asia/Tokyoタイムゾーン Asia/Tokyoタイムゾーンの例は以下の通り。 gistfbbc9d099cbbc8…
nodebrew install したら、syntax errorが出てインストールに失敗した。 hasen.hatenablog.com Pythonのバージョンが違うのかなと思って調べてみたら、確かに3系を使っていた。 ところがpyenvで2系に戻してみても、install時にsyntax error。結果は変わらず…
ちょっと仕事で必要になったので、練習。 参考: qiita.com
まず、これを読みました。 qiita.com fetchなんてものがあるんですね。Podcastや勉強会でも耳にするので、実際に使ってみました。 fetchの種類 fetchにはいくつかの種類があるそうで。 まず、ネイティブのfetch。つまり、ブラウザが実装しているwindow.fetch…
Node.jsの話。querystringというデフォルトのモジュールを知ったのでメモ。 公式Doc : Query String Node.js v6.1.0 Manual & Documentation クエリ文字列とは そもそも。query string(クエリ文字列)とは? e-words.jp URLの末尾に付くアレですね。キーバ…
globで初めてignoreを指定したのでメモ。 まずはコード。 gist2e4b810930e2c89a05b282b1f686734b ※ elmプロジェクトを例にしました。通常は、node_modules/**/*.jsとかにすれば良さそう。 ignoreする場合は、第二引数にオブジェクトを渡せばOK。キーをignore…
残念ながらElmのコンパイルにはwatchオプションがありません。つまり、「ファイルの変更を感知してコンパイルを行う」といったことができません。 そこで、Nodeの標準パッケージを利用して、擬似的なwatch機能を作ってみました。 gist8b7482df27f3e1b80f4823…
Node.jsのお勉強です。 Nodeの標準パッケージのうち、chukd_processというものを使えば、unixコマンドが利用できると知ったのでメモ。 Child Process Node.js v0.11.11 Manual & Documentation コマンド実行関数 ざっと見たところ、コマンドを実行できる関数…
タスクランナーやバンドラのwatch機能ってあるじゃないですか。あれらはもちろん知っていたのですが、nodeの標準パッケージにもwatchがあるんですね。初めて知りました。 というわけでメモ。 fs.watch 使い方:fs.watch(filename[, options][, lister]) 指定…
メモ書きです。 npmのパッケージをインストールして、それを手元で作動させてみる。みたいな時があると思います。 タスクランナーを走らせたりバンドルするまでもないけど、さくっとトランスパイルしたい。 そんな時、babelをターミナルで動かすと便利だなと…
Nodeの標準パッケージであるfsに、lstatという関数があります。 これを使えば、任意のファイルの状態を調べることができます。 File System Node.js v5.9.0 Manual & Documentation 以下のように、第一引数にパスを指定して、第二引数にコールバックを指定し…
Nodeを書いていて、ディレクトリを削除したいときがあるかもしれません。例:ビルド前にディレクトリクリーン。 そんなときに使えるのがrimrafというパッケージ。 github.com Unixコマンドのrm -rfと同じ挙動が実現できます。 でも、Nodeの標準パッケージにf…
webpack上でglobを使う方法について、業務で触れることがあったのでメモ。 インストール なにはともあれインストール。 $ npm init -y $ npm install webpack glob ディレクトリ構造 ディレクトリを以下のように作りました。 src/にJSファイルが格納されてい…
先日、Node学園 19時間目に参加した際にnodalというNode.jsのフレームワークを知りました。 というか、自分、Expressしか知りませんでした。しかも名前だけ。KoaとかHapiとか、色々あるんですね。 Node学園では、nodalは新進気鋭の新興勢力として紹介されて…
WebPack周りで、nodeのバージョンが古いばかりにエラーが出てしまいました。 ここでnodebrewをインストールして、Node.jsのバージョン管理をしっかりとやろうと思います。 参考にした記事がこちら。 qiita.com 一度nodeを削除する いま入ってしまっているnod…
WebPackの公式チュートリアルを消化していきます。WebPackはすでに何度か触っていますが、一度基本から学んでみます。 過去記事↓ chuckwebtips.hatenablog.com インストール 何はともあれ、WebPackをインストールします。 今まではpackage.jsonに記述してロ…