node.js

Bcryptを用いてパスワードをハッシュ化する (Node.js)

ログイン機能のあるアプリケーションを開発する場合、(大体の場合は)ユーザーにパスワードを設定してもらうことになります。当然ですがそれらのパスワードを平文でデータベースに保存したりするのはセキュリティ的にご法度で、ハッシュ化して保存をする必…

URLから画像のサイズを取得する(Node.js)

サーバーサイドアプリケーションを書いていると、「あるURLでアクセスできる画像の(縦横の)サイズを知りたい」という場面がまれにあると思います。Nodejsにおいて、そういった場合にどうしたらよいかを紹介します。 準備 image-size を利用します。また、…

winstonでのエラーログにエラーメッセージを含める

winstonでエラーをロギングするときに発生する問題 以下のようにwinstonのloggerを用意したとします。 const winston = require('winston'); const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winst…

winstonでexpressのリクエストログを扱う

expressにおけるリクエストのロギングはmorganを使うのが鉄板ですが、winstonなどの他の高機能なロガーで、まとめてログを扱いたいことが多いと思います。 この記事では、どのようにしてそれを実現するのかを簡単な例で説明します。 準備 空のディレクトリを…

express.js + passport.jsで1分でbasic認証を実装する

passport.jsを用いると、expressでbasic認証が簡単にできます。 準備 $ npm i express passport passport-http コード 以下のファイルをindex.jsとして保存します。 const express = require('express'); const passport = require('passport'); const passp…

ウェブ開発でNode.jsを採用するメリット・デメリット

ウェブ開発においてある程度の地位を築いた感のあるNode.jsですが、自分も2年ほど使っています。 この記事では、Node.jsの良い点・悪い点をまとめてみます。 メリット フロントエンドと同じ言語(JavaScript)でバックエンドを書くことができる これは素晴らし…

Express/Node.jsでTypeScriptを使ってみる

最近、バックエンド開発でNode.jsを用いています。 JavaScriptは仕様がどんどん良くなってきているし、コールバックを用いた非同期処理も個人的には好きです。 しかしコードベースが大きくなると「型があればなあ...」と思うこともしばしば。 そこでTypeScri…

Node.jsでノンブロッキングなコードを書くべき理由

Node.jsのロゴ Node.jsで「イベントループをブロックするコードを書いてはだめで、ノンブロッキングなコードを書かないといけない」とかよく言われます。Node.jsを用いて実際に開発をしている人にとっては至極当然のことですが、なぜノンブロッキングなコー…

ContentfulとexpressとNuxt.jsで簡単なブログを作ってみる

Contentfulというサービスを知る機会があったので、それを用いてブログを作ってみました。 Contentfulは、ユーザー向けのページを提供しないCMS(ヘッドレスCMS)というもので、コンテンツの追加・編集画面やデータベース、そしてそのコンテンツを利用するため…

node.jsでaws s3のデータを読み書きする

aws-sdkパッケージを使います。以下のコマンドでインストールします。 npm i aws-sdk このドキュメントは https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html で見ることができます。適宜参照しましょう。 また、別途S3の読み書き権限のある…

knex.jsを用いてnode.jsでmysqlを使う

knex.jsとは Node.js向けのSQLクエリービルダーです。 以下のデータベースに対応しています。 Postgres MSSQL MySQL MariaDB SQLite3 Oracle Amazon Redshift 実際に使ってみる 今回はmysqlとのセットでknex.jsを使ってみます。 まず、今回使用するmysqlをdo…

ubuntuにnode.js(v10)をインストールする

ここにある github.com これだけ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get install -y nodejs