- 1. 入門者のためのNode.js関連用語の意味と体系化
- 2. Node.jsのパッケージマネージャの使い方(yarn)
- 3. nodenvでinstall出来るnodeのバージョンを確認したら最新が出てこなかった時
- 4. Node.jsでログにUser IDを自動出力
- 5. Node.jsのCloud Tasksクライアントでタスク作成をリトライする
- 6. ant+をraspberry piで使う(node.js)
- 7. Gulp環境構築にて「AssertionError [ERR_ASSERTION]: Task function must be specified」の原因はgulp v4にバージョンアップした事による仕様変更
- 8. さくっとデザインガイドを作成するための Fractal
- 9. Deno Style Guideを読み解く
- 10. Headless #GoogleChrome + #node puppeteer + #docker で Webページのスクリーンショットを作成する例
- 11. n でバージョン管理
- 12. cradle.js (0.7.1) が動かなかった話
- 13. express がいつのまにかバージョンアップしてた
- 14. Typescript: X is Declared, But Never Usedの解決方法メモ
- 15. Nuxt.jsチートシート
- 16. 2019年 #HTML #PDF 変換の情勢とは? ( phantomjs -> wkhtmlpdf -> headless Chrome + #node + puppeteer )
- 17. Node.js(express)を用いたハッシュ化の仕方
- 18. CentOSにnvmインストールしたnodeが再起動時には扱えなくなる現象の解決
- 19. What’s “Node.js” ?
- 20. 【Node.js+Express+PostgreSQL】async/await使ってPostgreSQLに接続
入門者のためのNode.js関連用語の意味と体系化
公式ドキュメントやQiitaの解説は入門者には意味不明だったので、翻訳するための知識が必要と思ってここにまとめておく。
>関連記事
>[入門者のためのNode.js関連用語の意味と体系化](https://qiita.com/oekaki-hoho-ron/items/b991ed8031b3183c495a)
>[What’s “Git” ?](https://qiita.com/oekaki-hoho-ron/items/afa6786f2f845939a00e)
>[What’s “nvm” ?](https://qiita.com/oekaki-hoho-ron/items/1d00183f96e64d817824)
>[What’s “Node.js” ?](https://qiita.com/oekaki-hoho-ron/items/ded73f301c7e749deb9f)
>[What’s “npm” ?](https://qiita.com/oekaki-hoho-ron/items/b815125dca07751b73e9)
>[What’s “React” ?
Node.jsのパッケージマネージャの使い方(yarn)
##免責事項
この記事は初心者視点でザックリとした説明をしています。正確性に欠ける可能性がございますが、ご了承ください。「明らかに違うよ」ということがありましたら、ご指摘くださると幸いです。##環境
OS:最新版ではないMacOS
VirtualBox:5.2.26
Vagrant:2.2.6
Ubuntu:ubuntu/bionic64 v20181129.0.0##目次
1. yarnとは
2. yarnでパッケージのインストール
3. yarnでパッケージを作ってみる#1. yarnとは
yarnとはNode.jsで使うパッケージを管理するものですが、
この説明をする前にパッケージについて説明します。###パッケージ
パッケージはライブラリを包むもの。
パッケージマネージャはライブラリを包み、管理するものです。###ライブラリ
ライブラリは先人が作った処理です。
汎用的な処理を実装する際に使います。
例えば、「複数の値の中で一番大きい数字がどれか判定したい!」という時があったとします。ただ、この処理を1から作るのは、簡単そうにありません。
そこで、ライ
nodenvでinstall出来るnodeのバージョンを確認したら最新が出てこなかった時
nodenvでnodeのバージョンを管理していてnodeのバージョンを変える必要がある時
node 9.11.2 を node 12.12.0にしたいなど
“`
【インストール出来るnodeの一覧を表示】
nodenv install -l
“`“`
【結果】
〜
12.12.0
chakracore-dev
chakracore-nightly
〜
“`12.12.0がない
このようにnodeのバージョンが表示されない時は「node-build」が古いからだと思われ、ここにどうすればいいのか書いてあります
https://github.com/nodenv/node-build“`
Upgrading
# Via Homebrew
$ brew update && brew upgrade node-build# As a nodenv plugin
$ cd “$(nodenv root)”/plugins/node-build && git pull
“`nodenvのプラグインとして使用しているのでcdを使ってnode-buildの階層ま
Node.jsでログにUser IDを自動出力
## 背景
ECサイトなどを運用する場合、ログにユーザの識別IDが付与されていると調査時に行動を把握することが容易なため便利です。
そこで今回はNode.js(Express)で実現してみたいとおもいます。## 実装
### userId保持用の箱を準備
ログを出力する際、userIdを参照できるようにシングルトンなクラスを作成しておきます。“`requestContext.js
class RequestContext {
init(userId) {
this.userId = userId
}getUserId() {
return this.userId
}
}export default new RequestContext()
“`### Expressサーバ
下記の記述を、他のルーティングの上部に配置します。
“`express/app.js
import requestContext from ‘path/to/requestContext’app.use((req, res, next) => {
Node.jsのCloud Tasksクライアントでタスク作成をリトライする
[Node.jsのCloud Tasksクライアント](https://github.com/googleapis/nodejs-tasks)を使っていると、たまにgRPCのエラーでタスクの作成に失敗することがありました。リトライのための設定がややわかりにくかったので、リトライする方法を解説します。
## バージョン
– @google-cloud/tasks: 1.5.1
– google-gax: 1.7.5## 設定方法
[ドキュメント](https://googleapis.dev/nodejs/tasks/latest/v2.CloudTasksClient.html#createTask)にあるように、 `CloudTasksClient.createTask()` の第2引数に [CallOptions](https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html) を渡すとリトライなどの設定を行えます。具体的な設定例は次の通りです。
“`js
const client = new
ant+をraspberry piで使う(node.js)
# ラズパイでant+を使います
参考
https://www.johannesbader.ch/2014/06/track-your-heartrate-on-raspberry-pi-with-ant/#### 仕様物
– [AZ4U](https://www.amazon.co.jp/AZ4U-USB%E3%83%89%E3%83%B3%E3%82%B0%E3%83%AB-GARMIN%E4%BA%92%E6%8F%9B-ZWIFT-1%E5%B9%B4%E4%BF%9D%E8%A8%BC%E4%BB%98%E3%81%8D%E3%83%A1%E3%83%BC%E3%82%AB%E3%83%BC%E6%AD%A3%E8%A6%8F%E5%93%81/dp/B07FZHFLD6/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=az4u&psc=1&qid=1572531900&s=amazon-devices&sr=8-1)
– [ForeAthlete 235J](htt
Gulp環境構築にて「AssertionError [ERR_ASSERTION]: Task function must be specified」の原因はgulp v4にバージョンアップした事による仕様変更
始めての投稿です。
1. エラー内容、背景
2. 環境
3. 解決方法
4. 原因
の順に記載して行きます。## 1. エラー内容、背景
gulpにてSassを自動コンパイルしたかったため、Homebrew、Node.js、gujpをインストール。
gulp自動監視を起動しようと、コマンド実行すると、“`ruby:qiita.rb
‘AssertionError [ERR_ASSERTION]: Task function must be specified’
“`
と言うエラーが。## 2. 環境
mac– npm 6.7.0
– Node.js 12.13.0
– CLI 2.2.0
– gulp 4.0.3## 3. 解決方法
**Node.js**と**gulp**のバージョンを下げる。– Node.js 12.13.0
– gulp 4.0.3↓
– **Node.js 11.15.0**
– **gulp 3.9.1**Node.jsのバージョンの下げ方は、
“`ruby:qiita.rb
$ npm install -g n
さくっとデザインガイドを作成するための Fractal
突然ですが、デザイナーとエンジニアの間で一番多く共有されるものって何でしょう?
(おそらく)そうデザインテンプレートです。[K.S.ロジャース](https://www.wantedly.com/companies/ks-rogers)の島袋です。
今回は、デザインガイドを作成するために [Fractal](https://fractal.build/) を使用してみた所感や使い方を書いていきたいと思います。なお、あくまでエンジニア主導と目線による使用感になるので、デザイナーから見た場合は少し違った感想になるかとは思いますのであしからず。
## デザインガイド作成のきっかけ
実は今回のデザインガイドはデザイナーとエンジニア向けではなく、HTMLほぼ初心者の方でもHTMLを構築できるようにするためでした。なので、導入部分のデザイナーとエンジニアの共有とは少し違いますが、分かりやすい指標を作る必要があったため、デザインガイドを作成しました。簡潔に作成するためにいくつかのフレームワークを検討しましたが、一番導入が簡単そうな `Fractal` を使うことにしました。
## イ
Deno Style Guideを読み解く
## Deno – JavaScriptランタイムのネクストスタンダードか
Deno、いいですよねー。セキュアだし、TypeScript推しだし、標準モジュール志向だし。
## v1.0のリリースについて
未だv0.2ということで本番環境での利用は推奨されていません。
作者のライアン曰く2019年中にv1.0リリースすると公言しているそうですが、コミュニティの中では恐らく来年中頃くらいまではかかるのでは?という予想です。
まぁ正式リリース前のこのタイミングで各種情報をキャッチアップしておけばJS界隈で遅れを取ることはなさそうですね。## Deno Style Guideとは
その名の通りDenoをコーディングする際の現時点でのベストプラクティスです。
リンクは[コチラ](https://deno.land/std/style_guide.md)。Headless #GoogleChrome + #node puppeteer + #docker で Webページのスクリーンショットを作成する例
# Dockerfile
– ほとんど公式のtroubleshootingのまま https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
– `npm i puppeteer-core` がないと動かなかった気がするので追加しているdocker で利用するには一筋縄でいくわけではないよー的なことが書かれている気がする
>Getting headless Chrome up and running in Docker can be tricky. The bundled Chromium that Puppeteer installs is missing the necessary shared library dependencies.
“`dockerfile
# https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.mdFROM node:10-slim
# Insta
n でバージョン管理
curl -L http://git.io/n-install | bash
n
n ls
再ログイン
$ npm cache clean
$ npm cache ls
$ rm -rf ~/.npmecho “deb http://mirrors.kernel.org/ubuntu/ xenial main” | sudo tee -a /etc/apt/sources.list && sudo apt-get update && sudo apt install -y –allow-unauthenticated libpng12-0
cradle.js (0.7.1) が動かなかった話
cradle使おうとしたんです。
[node.jsから驚くほど簡単に使えるNoSQLサーバ Couchbase(CouchDB)を試す!](http://wise9.jp/archives/4291)を参考に、expressのバージョンが上がってるからちょこちょこ修正しつつ、さてDB編集だと言った時にこんなエラーが。
“`
C:\home\minori\program\js\app4\node_modules\cradle\lib\cradle.js:316
if (! o.__lookupGetter__(attr)) {
^TypeError: o.__lookupGetter__ is not a function
at C:\home\minori\program\js\app4\node_modules\cradle\lib\cradle.js:316:21
at Array.forEach ()
at C:\home\minori\program\js\
express がいつのまにかバージョンアップしてた
なので、今新しくexpress のシステム作ろうとして WEB に出回っているコードをコピペしても **全然** 動いてくれません。
https://expressjs.com/ja/guide/migrating-4.html
とりあえずこれを参照すればなんとかなると思います。
Typescript: X is Declared, But Never Usedの解決方法メモ
## X is Declared, But Never Usedというエラーが出ることがある。
以下のような例だ。
“`ts
export const onChange = (val: string, index: number) => {
index + 1
}// val is Declared, But Never Used
“`## 回避するには、変数の代わりに空のオブジェクトを使えば良い。
“`ts
export const onChange = ({}, index: number) => {
index + 1
}
“`エラーが消えるはずだ。
この方法は可読性を高めてくれるので、気に入った。
完参考
https://www.triplet.fi/blog/typescript-getting-rid-of-error-x-is-declared-but-never-used/
Nuxt.jsチートシート
関連:
– [Vue.jsチートシート(基礎編)](https://qiita.com/morrr/items/289b6e7ac82e969a7a58)
– [Vue.jsチートシート(コンポーネントと構成編)](https://qiita.com/morrr/items/2642135a927d6a3e7584)Vueチートシートに引き続き公式チュートリアルの抜粋です。
参照
————————————————————
– [Nuxt.js日本語公式](https://ja.nuxtjs.org)
– [ガイド](https://ja.nuxtjs.org/guide)概要
————————————————————
– Nuxt.js = Vue.jsおよびそのプラグインに基づくサーバサイドフレームワーク
– NuxtはVue.js, vue-router, vuex, Vue Server Ren
2019年 #HTML #PDF 変換の情勢とは? ( phantomjs -> wkhtmlpdf -> headless Chrome + #node + puppeteer )
https://www.paperplane.app/blog/modern-html-to-pdf-conversion-2019/
# 古い手法とは
PhantomJSのかわりにwkhtmltopdfが重宝されてきたけどモダンブラウザの仕組み、 HTML5やjsに対応しきれてないよーって書かれてる気がする。
>The traditional approaches
>Until 2017, there were two common ways to convert HTML to PDF. The first was to use wkhtmltopdf — an open source command line tool specifically designed for the task. A second alternative was PhantomJS, an open source “headless” web browser which can be controlled with JavaScript.>Although these tools have s
Node.js(express)を用いたハッシュ化の仕方
## はじめに
会員登録の際に、ユーザーから送られてきたパスワードをハッシュ化する方法について解説します。
また、ログインの際にユーザーが入力したパスワードとハッシュ化されたパスワードが一致しているのか確認する必要があると思います。それについても解説します。## 実装
### 事前準備
まずはNodeにハッシュ化するためのモジュールをインストールします。“`
npm install –save bcrypt -s
“`
### パスワードをハッシュ化する“`hash.js
const bcrypt = require(‘bcrypt’);
//モジュールの読み込み
const password = “hoge”;
let hashed_password = bcrypt.hashSync(password, 10);
“`
以上でパスワードのハッシュ化が行えます。### ハッシュ化された値とパスワードの値の一致の確認
“`hash.js
bcrypt.compareSync(“hoge”, hashed_password) // =>ture
“`
CentOSにnvmインストールしたnodeが再起動時には扱えなくなる現象の解決
#概要
普段はReact NativeでIOSアプリを開発してます
今回は、CentOS内でnvmでインストールしたnodeコマンド利用ができなくなった現象を解決した流れのメモを共有します“`
[vagrant@localhost ~]$ node
node: /lib64/libc.so.6: version `GLIBC_2.16′ not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.17′ not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.14′ not found (required by node)
[vagrant@localhost ~]$
“`
上記のようなエラーが吐かれnodeが利用できません#解決策
nvmでインストールしたnodeをデフォルトでの利用をさせるようにします“`
[vagrant@localhost ~]$ which node
/usr/bin/node
What’s “Node.js” ?
よく使い方を忘れるので、必要な時にサッと読み返せるように超完結にまとめておきます。
>関連記事
>[入門者のためのNode.js関連用語の意味と体系化](https://qiita.com/oekaki-hoho-ron/items/b991ed8031b3183c495a)
>[What’s “Git” ?](https://qiita.com/oekaki-hoho-ron/items/afa6786f2f845939a00e)
>[What’s “nvm” ?](https://qiita.com/oekaki-hoho-ron/items/1d00183f96e64d817824)
>[What’s “Node.js” ?](https://qiita.com/oekaki-hoho-ron/items/ded73f301c7e749deb9f)
>[What’s “npm” ?](https://qiita.com/oekaki-hoho-ron/items/b815125dca07751b73e9)
>[What’s “React” ?](https://qiita.co
【Node.js+Express+PostgreSQL】async/await使ってPostgreSQLに接続
# はじめに
本記事では、コールバックではなく、“async/await“を使ってExpressでPostgreSQLに接続する方法をまとめる。
“async/await“部分以外は、以下の記事を参考にしていただければ。* [【Node.js+Express+PostgreSQL】ExpressにPostgreSQLを導入](https://qiita.com/c6tower/items/c6fc18e14229dbf2f53a)
## 環境
* Windows 10
* Express 4.17.1
* PostgreSQL 11.3
* pg 7.12.1## サンプルコード
“`js:sever.js
const express = require(“express”);
const app = express();
const pg = require(‘pg’);const pool = pg.Pool({
host: hoge,
database: hogehoge,
user: huga,
port: 5432,
passwor