- 0.1. 【Sequelize】ハマったポイントのメモ
- 0.2. JavaScriptのClassでprivateメソッドを実装すると「Parsing error: Unexpected character ‘#’ eslint」エラーになる
- 0.3. [AWS] Cloudwatch_LogsからLambda経由で軽いETLしつつOpenSearchでApacheログを可視化する方法
- 0.4. Google Cloud Function で Twitter の定期投稿Botを作成
- 0.5. Windowsでnode-gypが成功した話
- 0.6. 私がサクッと認証付きで Node.js からメールを送った話
- 0.7. そのオープンソースプロジェクト、公開前に大事な情報コミットしてない?
- 0.8. nvm-windowsでNode.jsをインストールする
- 0.9. Firebase CLIとかの出力が2022-01-10の一時期に乱れてた件
- 0.10. React Nativeのstart時にエラー
- 0.11. お正月休みにGitをインタラクティブに操作できるサブコマンドツール作ってきました
- 0.12. Dockerで安全にnode.jsウェブアプリをコンテナ化する
- 0.13. Node.js: MySQL 8.0 で接続エラーが出た時の対策
- 0.14. Githubにある自作のnpmモジュールをnpm installしてENOENTなエラーが出た時
- 0.15. nvm-windowsを使ってnodeをバージョン管理
- 0.16. Webの勉強はじめてみた その20 ~Node.js編 ライブラリの使い方~
- 1. ライブラリを利用する
- 2. Node.js
【Sequelize】ハマったポイントのメモ
Sequelizeを少し使ってみて、いろいろハマったところがあったので、そのメモ。
version: “Sequelize CLI [Node: 16.13.1, CLI: 6.3.0, ORM: 6.12.0-beta.1]“# migrationでファイルを指定してundoするときの注意点
“db:migrate:undo:all“に“–to“オプションを付けてファイル名を指定すると、「そのファイルまで」undoされる。
例えば、migrationパス配下にA、B、Cの3ファイルがあって、A→B→Cの順に作成していたと仮定して、“–to A“と指定すると、AだけでなくBもCもundoされる点に注意。
決して「そのファイルの分だけをundoする」という意味ではない。
※基本的には[ここ](https://sequelize.org/master/manual/migrations.html#undoing-migrations)に載ってる# sequelizeオブジェクトのつくりかた
“sequelize.query“とかを使うために“seq
JavaScriptのClassでprivateメソッドを実装すると「Parsing error: Unexpected character ‘#’ eslint」エラーになる
## はじめに
ESLintを設定している時に、以下の図のようなエラーが発生した。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1372684/7f45977c-39c1-9484-2659-c54ecba53200.png)今回はこのエラーを解消する方法について調べてみたのでその備忘録を残す。
## ESLintについて
https://qiita.com/yuta-katayama-23/items/5d73bbe79c19301551df#eslint%E3%81%AE%E8%A8%AD%E5%AE%9Aを参照。
## ESLintのparserを指定する
上記のエラーを解消するには、`yarn add –dev @babel/eslint-parser`等でライブラリをインストールし、後は公式にあるように以下のように`parser`を追記すればいい。![image.png](https://qiita-image-store.s3.ap-northeast-1
[AWS] Cloudwatch_LogsからLambda経由で軽いETLしつつOpenSearchでApacheログを可視化する方法
# やりたい事
2022/01/13開催の [SB Tech Festival](https://www.softbank.jp/biz/events/techfestival-deeptech-2022/) で登壇した内容、「ビッグデータ活用の第一歩AWS環境での大容量ログ可視化」の詳細手順(後半)ページです。
### このエントリで解説するのは以下のイメージ
![2022-01-11_09h20_031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99499/23980234-e06e-96dd-3d8b-0bba4493cd57.png)前半部分のFargate+Firelens+CloudwatchLogsについては[こちら](https://qiita.com/Kedamari/items/fba00598c0bd9e08fdb9)の記事を参照してください。
# 手順
2022/01/11時点でECSコンソールは新しいエクスペリエンスが提供されていますが、本エントリでは旧UIをベー
Google Cloud Function で Twitter の定期投稿Botを作成
#はじめに
Twitterに定期的に投稿するBotを作ってみたのでその記録。
Twitter APIはGoogle Cloud Functions 上でnode.jsで実装。
スケジューリングは Google Cloud Schedulerを利用した。
Cloud Schedulerからは直接Cloud Functions を起動できないので、間にGoogle Cloud Pub/Sub を挟んでいる。####ポイント
– Firebaseは利用しない(Firebaseが必須というような記事も見受けられるが誤解)
– TypeScriptも利用しない(Cloud Functionsが未対応なので使用しない)#Twitter APIの準備
TwitterのAPIを利用するにはAPIのキーが必要だがこれはTwitter Developer Potalで取得する。
この辺りは、こちらあたりの記事が参考になるかと思う。
参考 [Twitter API を利用するには](https://qiita.com/taishi0202/items/092c267c0c6dc68347c5)注
Windowsでnode-gypが成功した話
## エラーが出る人は下準備をしていない?!
エラーが出るのはnode-gypの基準に満たしてないかも!
[node-gyp公式サイト](https://github.com/nodejs/node-gyp#on-windows)に詳しい情報が載ってるので英語が得意な人は読んでみてください。## 下準備
以下のことを順番通りにしてみてください!## Pythonのインストール
まず、Pythonをインストールしてください。
[Microsoft StoreのPython](https://docs.python.org/3/using/windows.html#the-microsoft-store-package)をおすすめします。## Visual Studio Build Toolsのインストール
Pythonの次に、[Visual Studio Build Tools](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools)が必要です。
私がサクッと認証付きで Node.js からメールを送った話
## 認証付きで Node.js からメールを送るのは初心者には難しい?
人によって難易度は違うように感じますが、これはそこそこ難しいと思います。
どうしても、エラー文が分かりにくく解決策も簡単に見せてはくれません。
なので、挑戦するときは **挑戦して成功した人** と一緒に挑戦するといいでしょう。## 必須条件
– Node.js が扱える・動かせる
– メール・Node.js についての知識がそこそこある
– サーバーとドメインがある
– サーバーで、すでに Node.js 製の何か(Web サーバー等)があり、ドメインの設定等が済んでいる## Zoho 契約
### 無料で使える Zoho メールサービスに契約
[Zoho 公式サイト](https://mail.zoho.com/)にアクセスして、契約してください。
契約はサイトの通りにしてください。### Zoho メールサービスのセッティング
このサービスのセットアップウィザードは、非常に分かりやすいのでここに記載する必要はないでしょう。
### おっと!
Zoho のメールサービスの
そのオープンソースプロジェクト、公開前に大事な情報コミットしてない?
通常、秘密鍵やAPI Tokenはソースコードとは分離させ、.envファイルなどに保存しておいて、Gitのコミットには含めない。しかし、実装の初期には.envを一時的にコミットに含めている事例も珍しくない。それを後で削除してコミットしても、履歴としては残っている。
この記事では、スマートコントラクト用の秘密鍵や、APIトークンなどの情報をGitのコミット履歴から検索し、リポジトリを公開する前に安全を確認できるツールを紹介する。
##コミット履歴を展開する
私の作ったesightというツールを使う。https://github.com/TakutoYoshikai/elemental-sight
git logを使って確認するのが一般的だが、一度全て展開した方が、後の編集や確認が楽になる。
**インストール**
“`bash
pip3 install git+https://github.com/TakutoYoshikai/elemental-sight.git
“`**コミット履歴の展開**
出力先ディレクトリに、全てのコミットの差分ファイルが展開される
nvm-windowsでNode.jsをインストールする
## nvm-windowsとは
Node.jsのバージョンを管理するアプリケーション。
複数のバージョンをインストールして、好きなタイミングで使用するバージョンを切り替えたりできる。## nvm-windowsをインストールする
[Gitリポジトリ](https://github.com/coreybutler/nvm-windows/releases)から`nvm-setup.zip`をダウンロードし、`nvm-setup.exe`を実行する。:::note warn
聞かれる質問は基本的に全てデフォルトで問題ないが、インストール先のフォルダのパスの半角スペースが含まれる場合、コマンド実行時に動作しない可能性がある。
:::## mvnのバージョンを確認する
インストールできたら下記のコマンドでバージョンを確認できる。“`
❯ nvm version
1.1.9
“`## インストール済みのNode.jsを確認する
現段階ではまだ何もインストールしていないため、`No installations recognized.`が出力される。“`
❯ nvm
Firebase CLIとかの出力が2022-01-10の一時期に乱れてた件
※Firebase CLI については更新されたので `npm update` すればもう大丈夫です
## どうした
`firebase-tools` とかの出力がおかしい。
Firebase CLIがこわれた…… pic.twitter.com/APtT9v3hEO
— 高梨ギンペイ (@ginpei_jp) January 9, 2022
## どうして
依存の依存の(中略)依存である `colors` に変なリリースがあった。作者故意のものなのでそこの更新は期待できなさそう。
– `v1.4.2`, `v1.4.1` ← 問題あり
– `v1.4.0` ← 大丈夫https://www.npmjs.com/package/colors
## どうする
### 直接利用している場合
過去のバージョンで固定すれば大丈夫。
“`console
$ npm install colors@1.4.0
“`### 依存の依存の場合
基本的には対象パッケージの更新待ちです。動く状態の `package-lock.json` が残っている場合、そのままにしておきましょう。
更新が来たら `npm update` で
React Nativeのstart時にエラー
npx react-native start
コマンド実行時に下記のようなエラーが出た。failed to construct transformer envelope routines::unsupported
digital envelope routines::initialization error
そのため、npx react-native run-androidを実行すると、Androidの仮想デバイスも赤いエラー画面が出力。
調べたところ、どうやらnode.jsのバージョンがいけないらしい。
自分が使っていたのは最新バージョンの17.3.0
v17でこのエラーが発生するようなので、安定バージョンの16.13.1にダウングレードすることで解決しました。ちなみにnode.jsのダウングレードはWindowsだとコントロールパネルからnodejsをアンインストールして、
node.js公式から16.13.1をダウンロードして、インストーラを走らせるだけ。
お正月休みにGitをインタラクティブに操作できるサブコマンドツール作ってきました
年末からお正月にかけての時間で趣味でツールを作ってみました?
Gitのちょっと面倒な操作をインタラクティブに行えるGitのサブコマンドツール[git-ex](https://github.com/yasukotelin/git-ex-js)を作成してnpmに公開しています。https://github.com/yasukotelin/git-ex-js
https://www.npmjs.com/package/@yasukotelin/git-ex
僕は普段はAndroidエンジニアとしてKotlinを書いていますが、趣味ではVimのカラースキーム作ったり、Goでツール作ったり、Rustに手を出したり、、、など色々しています。今回はJavaScriptのターミナルのライブラリがとても良さそうだったのでnode製のCLIツールを作ってみました?!
このQiita記事では前半にツールの紹介と、後半で実装面を書いてみようと思います。
## ツールの紹介
僕は普段Gitをターミナル上でコマンドで使っているのですが、たまにSourceTreeなどのGUIツールやTIGなどのツール
Dockerで安全にnode.jsウェブアプリをコンテナ化する
Happy New Year!
年末、年始があっという間に終わり、明日は成人の日。
来週からコーディングのオンラインクラスを受けることになった。4−6ヶ月になりそうであるが、無事乗り切れるのか、少々不安も。javascriptを習得するコースなため、最終的にnode.jsのサーバーサイドでのコーディングもできるようになるまでの知識を得られるよう頑張ろう。node.jsの環境構築に不可欠ともいえるdocker。
今回は、[10 best practices to containerize Node.js web applications with Docker](https://snyk.io/blog/10-best-practices-to-containerize-nodejs-web-applications-with-docker/)
の翻訳記事のご紹介です。こんかい翻訳に苦労しmした。読みにくい部分もあると思いますが、どうぞ最後までお付き合いください。
#Dockerでnode.jsウェブアプリケーションをコンテナ化するための10のベストプラクティス
LiranTal
Node.js: MySQL 8.0 で接続エラーが出た時の対策
次のエラーが出た時の対策です。
“`text
code: ‘ER_NOT_SUPPORTED_AUTH_MODE’,
errno: 1251,
sqlMessage: ‘Client does not support authentication protocol requested by server; consider upgrading MySQL client’,
sqlState: ‘08004’,
fatal: true
“`エラーが出るプログラム
“`js:maria_version.js
#! /usr/local/bin/node
// —————————————————————
// maria_version.js
//
// Jan/09/2022
//
// —————————————————————
‘use strict’// ———
Githubにある自作のnpmモジュールをnpm installしてENOENTなエラーが出た時
# はじまり
自分で作ったnpmモジュールをubuntu環境へinstallしようとしたときに以下のエラーが出ました。
“`bash:log
root@ca04e13630cb:/usr/app# npm install git+https://github.com/Landmaster135/FeedFetcher.git
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno -2
npm ERR! enoent An unknown git error occurred
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoentnpm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-01-08T17_49_46_172Z-debug-0.
nvm-windowsを使ってnodeをバージョン管理
## 最初に
node v12を使っていましたが、メンテナンスも2022.4月で切れるのでバージョンアップしなければと思いつつ、のびのびにしていました。
qiita投稿に慣れるためにもv16アップデートしてみます。### 環境
os: windous10
node12⇒node16## バージョン管理ツール選択
nodeのバージョン管理ツールはいくつかあるみたいだが、windowsだと選択肢少ないみたい。スター数の多いnvm-windowsにしてみた。
参考
[Node.jsのバージョン管理ツールを改めて選定する【2021年】](https://qiita.com/heppokofrontend/items/5c4cc738c5239f4afe02)
## nvm-windows のインストール
参考
[2020-0711 nvm-windows で Node.js の 環境構築 と バージョン管理 (Windows, nvm) ](https://blog.beachside.dev/entry/2020/07/11/110000)git-hubのhtt
Webの勉強はじめてみた その20 ~Node.js編 ライブラリの使い方~
N予備校「プログラミング入門Webアプリ」コースを受講しています。
今回は第3章4,5節です。ライブラリを利用する
:::note
require: 必要なモジュールだけをメモリに記録する
:::CSVを読み込む
“`javascript
‘use strict’;
//FileSystem Module
const fs = require(‘fs’);
//ReadLine Module
const readline = require(‘readline’);
//ReadStream from CSV
const rs = fs.createReadStream(‘./popu-pref.csv’);
//ReadLine from rs
const rl = readline.createInterface({input:rs, output:{}});
//DataMap key: 都道府県 value: 集計データのオブジェクト
const prefectureDataMap = new Map();
//line Even
ADHD向けnpmパッケージ
エンジニアでADHDだと、作業に集中しすぎて、持病の薬を飲み忘れたり、ミーティングをすっぽかしてしまったり、食事を摂るのを忘れてしまったりする。
そんな人が集中を切るためには、アプリケーションを強制終了させる他ない。
そのためのnpmライブラリがadhd-timerである。
https://github.com/TakutoYoshikai/adhd-timer
“`bash
npm install –save TakutoYoshikai/adhd-timer
“`毎日0:00になると、Google ChromeとFirefoxとターミナルを強制的に終了させ、寝る時間だよ!と表示する例
“`javascript:index.js
const ADHDTimer = require(“adhd-timer”);ADHDTimer([
{
schedule: “0 0 0 * * *”,
callback: function() {
console.log(“寝る時間だよ!”);
}
}
], [
“firefox
npmのCLIパッケージを作成する
初めてnpmのCLIパッケージを作成してみました。
コマンドライン引数の受け取りやプロンプトの表示など、難しそうなイメージだった部分も、ライブラリを使うことで手軽に実装できたので、それらを紹介したいと思います。
# 作成したパッケージ
利用しなくなったプロジェクトの `node_modules` や `dist` フォルダを探して削除するための `clean-node-projects` というパッケージを作成しました。
`npx clean-node-projects` とすることで、そのパスの配下のフォルダが検索され、どれを削除するか選ぶことができます。
![clean-node-projects_demo.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/504515/76d8b414-2348-c662-ea7c-7078d6f5febf.gif)https://github.com/K-kind/clean-node-projects
https://www.npmjs.com/p
Webの勉強はじめてみた その19 ~Node.js編 導入~
N予備校「プログラミング入門Webアプリ」を受講しています。
今回は第3章2,3節です。Node.js
:::note
JavaScript でプログラミングすることのできる、サーバーサイド向けのプラットフォーム
:::nvmのインストール
Node.jsのバージョンを管理するツール
“`bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
“``-o-` : このオプション、調べ方が悪いのかいまいち理解できてないです。
`-o` は指定したファイル名に保存というのはわかるんですが。“`bash
source ~/.bashrc
“`再起動せずに`.bashrc`ファイルを読み込ませる
Node.jsのインストール
“`
nvm install v10.14.2
nvm use v10.14.2
“``node –version` : バージョン確認
`node` :
コンテナにNode.jsの指定バージョンをインストールする
nvmを用いてインストールを行います。
nvmを使用すれば、簡単に複数のバージョンをインストールすることができます。“`Dockerfile
ARG NVM_VERSION=17.1.0ENV NVM_DIR /root/.nvm
RUN apt-get install -y \
curlRUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash \
&& . ${NVM_DIR}/nvm.sh \
&& nvm install ${NVM_VERSION} \
&& nvm alias default ${NVM_VERSION} \
&& nvm use default \
&& ln -s ${NVM_DIR}/versions/node/${NVM_VERSION}/bin/node /usr/bin/node \
&& ln -s ${NVM_DIR}/versions/node/${NVM