Node.js関連のことを調べてみた2020年09月14日

Node.js関連のことを調べてみた2020年09月14日
目次

【nvm-windows】ディレクトリ毎に Node.js のバージョンを自動で切り替える

functions などを書いていると、Node.js のバージョンを切り替えたいことがありますよね。手動で`nvm use`するのも面倒なので自動化しましょう。

nvm のインストールについては割愛します。

# 環境
– Windows 10 Pro
– Git Bash
– nvm 1.1.7

## .nvmrc
バージョンを切り替えたいディレクトリに`.nvmrc`を作成し、nvm にインストール済みの Node.js のバージョンを記述します。

“`
14.10.1
“`

## ~/.bashrc
以下を追記。ディレクトリを移動した際、`.nvmrc`が存在すれば、`.nvmrc`に記述されている Node.js のバージョンを変数に格納し、`nvm use [変数]`を実行しています。

“`bash
enter_directory() {
if [[ $PWD == $PREV_PWD ]]; then
return
fi

PREV_PWD=$PWD
[[ -f “.nvmrc” ]] && curre

元記事を表示

Typeorm でマイグレーションをしよう

## はじめに

Typescript 用の OR マッパー Typeorm を使用して、環境設定からマイグレーションをする方法まで紹介します。

[公式のリファレンスはこちら](https://typeorm.io/#/)

## 前提

“`bash
$ node -v
v14.9.0

$ yarn -v
1.22.4

$ mysql –version
mysql Ver 8.0.19 for Linux on x86_64 (MySQL Community Server – GPL)
“`

## 環境構築

まず、Typescript 環境を構築するところから始めます。この記事ではパッケージマネージャに yarn 使用しますが、NPM や他のものをお使いの方は、適宜読み替えてください。

“`bash
yarn init -y
“`

これで package.json が作成されました。続いて、Typescript 関連のツールと Typeorm をインストールします。その他 Linter や Formatter などはお好きな物をお使いください。

“`ba

元記事を表示

Twitter広告APIを利用してキャンペーンを作ってみる その1~TwitterAPI申請編~

# 経緯
私が所属している会社では__[待ラノ](https://lanobe.jp/ “待ラノ”)__という小説投稿サイトを運営しています。
その中で、Twitter広告のキャンペーンを利用してプロモーションをしようってなったのでTwitter広告APIを利用してキャンペーンを作ってみました。

# そもそもTwitter広告のキャンペーンって何?
Twitter広告のキャンペーンですが、簡単いうと1日にかける予算や期間内にかける総予算を指定して、Twitterに広告を出す機能です。

# Twitter広告APIでキャンペーンを作成するためには
以下の手順が必要です。

1. Tiwtterアカウントを作成する
2. Tiwtterアカウントにメールアドレスと電話番号を設定する
3. __TiwtterAPIの利用申請をする__
4. TiwtterAPIを利用してツイートをする
5. Tiwtter広告APIの利用申請をする
6. Tiwtter広告APIでを利用してツイートを使ったキャンペーンを作る

今回は1と2については省略して3の__【TiwtterAPIの利用申請をする

元記事を表示

VSCodeでDocker入門

# 対象
Dockerインストール済み
初めてDockerを使用する。

# 前提
コマンドラインは使える
VSCode インストール済み

# 本記事について
一般的なのDockerの学習フローではdockerコマンドを学びつつ、イメージやコンテナの概念について理解し、その後docker-composeへと進んでいくと考える。

本記事ではイメージやコンテナ等の概念の説明は大きく省き、コマンドもvscodeの拡張機能で代用する。それによってdocker-composeのコマンドの最小限のみ学んでさくっと動かすことで実践的にDockerについて理解していこうというもの。

# 本記事のゴール
docker-composeコマンドがいくつかつかえるようになる。
nodejsの実行環境が作れる様になる。

# VSCode環境構築

![スクリーンショット 2020-09-13 19.36.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113504/a1241576-8dad-6f06-7eab-21

元記事を表示

New Relic APMをNode.jsのアプリケーションに導入してパフォーマンス解析をする

## 背景
– Webアプリケーションのパフォーマンスチューニングコンテスト「ISUCON10」の予選に参加した。
→ [チームメイトの参加ブログ](https://rso.hateblo.jp/entry/2020/09/13/181343)
– New Relicから [ISUCON10参加チーム向けNew Relic特別無料ライセンス](https://blog.newrelic.co.jp/developers/how-to-utilize-isucon-special-license/) が提供されていたので使ってみた。

## 導入方法
前提として、NewRelicのAPMライセンス適用済みのアカウントが作成されていること

– NewRelicポータル > APM > Add More で `Node js` を選択
– 画面の案内に沿って導入する
1. アプリケーション名を決めて入力する
2. Node.jsアプリケーションのディレクトリでnewrelicのNPMパッケージを導入
`$ npm install newrelic –save`

元記事を表示

GitHub Actionsを使ってWebサイト(EC2)の更新を自動化する

GitHub Actionsを使ってWebサイトの更新を自動化する手法を備忘録がてらにご紹介します。
この記事を読むことで、下記の作業を自動化できます。

1. Node.jsを用いた静的アセット(html,css,js)のビルド
2. scpを用いたビルドアーティファクトのAWS EC2インスタンスへのデプロイ
3. slackへの通知

## 技術・ツール:hammer_pick:
前提となる技術とツールをご紹介します。
Node.js、EC2インスタンス、slackは既に用意されているものとして説明します。

| 名前 |
| —- |
| GitHub Actions |
| AWS EC2 |
| Node.js(v12.18.3) |
| slack |

## GitHub Actions を始める前に
slackへの通知やEC2インスタンスへのssh接続が必要となるため、GitHubのsecretsを使用して秘匿情報を隠蔽します。
[ Settings > Secrets > New secret ]より、下記のsecretsを追加してください。

![85b5

元記事を表示

Node.jsでナイーブベイズ分類器を使った分類を行う

#ナイーブベイズ分類器のBayesモジュールを使う
ナイーブベイズ分類器は、次のようなことができます。

* スパムメールの判定
* ニュース記事やブログ記事のカテゴリー判定

ごく簡単にいうと、学習に必要なのはカテゴリーに関連する単語をたくさん登録するだけです。カテゴリーのわかっている文章を単語に分解して登録します。判定するときには、カテゴリーに関わる単語の出現率で判定されます。

もちろん、もっと正しい理解をしたほうがいいですが、[bayesモジュール](https://www.npmjs.com/package/bayes)を使うならこの程度のイメージを持っておくだけで使えて、なかなか有益な結果を得られます。詳しく知りたい方は末尾のリンク先を参照してください。[^1]

##使い方(イメージ)

“`javascript
// 学習
classifier.learn(‘カテゴリーAに関する長文・・・・・’, ‘カテゴリーA’)
classifier.learn(‘カテゴリーBに関する長文・・・・・’, ‘カテゴリーB’)
classifier.learn(‘カテゴリーCに関す

元記事を表示

npm install –save について

## はじめに

本投稿は `npm install` コマンドの `–save` オプションについてですが、すでに

npmでパッケージをインストールする際、ネットを検索すると `–save` というオプションをよく見かける。
ex)axios をインストールする場合

“`shell
$ npm install axios –save
“`

`-g` でグローバルにインストールする際には見ないのだが、何者なのか調べてみた。

## npm install –save オプションについて

`package.json` の `dependencies` に登録してくれるようだ。

### 何がうれしいのか

git にコミットする際、パッケージをインストールしているフォルダ `node_modules` は `.gitignore` によって除外されます。
違う開発環境を git からクローンして構築する場合、`package.json` を元に復元します。
よって、同じパッケージ環境を簡単に構築することができます。

## 結論: `–save` オプションは必要か

元記事を表示

実行できて見栄えも良いMarkdown手順書で快適な運用ライフを送ろう!

### 実行できる手順書(LC4RI)ってのご存じでしょうか?

ドキュメントとコマンドが混じって書いてあって、コマンド部分は実行できて、
その実行結果が載っています。
なので、**手順書として読めて、かつ実行した内容とその時の出力がエビデンスとしてとれるもので
運用作業者にとってはExcel手順書の置き換えにぴったし**なんですね

そういう書き方が出来るツールとしてjupyter notebookが良く使われているんですけど、
これが運用してみるとドキュメントの並び替えとか、編集が意外と面倒だったりする。

もっと普通のエディタで書けたら・・そう思ってました。したらヒラめいた!

### VSCodeのmarkdown編集機能を実行できるようにすれば良いんだ!!

# つくってみたわ

![lc4ri2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189193/1cd4535d-49d1-19c4-1532-3e60654e61f4.gif)

[VScodeのマーケットプレイスからインストール

元記事を表示

ウソ穴 Ver 6 の作り方

## はじめに

個人開発`ウソ穴`の作り方を紹介します。

## ウソ穴とは

`ウソ穴`は、ライブ映像 or 動画とARを組み合わせて、壁に穴が空いた錯覚を作り出します。Webサイトなので、ユーザーはアプリのインストール無くウソ穴を使用できます。

## ウソ穴 Ver 6

今回は、Android端末でも動作実績のある Ver 6 を紹介します。

## デモ映像

ウソ穴 Ver 6 Type B で顔に穴を開けてみました。

気象庁アメダス観測データのAPI「JJWD」をきちんと作り直した

**長らく停止しておりましたが2020年9月、再始動しました。**
**https://jjwd.info/**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185296/01e1b9e4-152b-c203-efd0-7b699cc19005.png)

## JJWD とは / 作り直した動機

JSONized Japanse Weather Dataの略で、気象庁が公開しているCSV形式のアメダス観測値データを使いやすいJSON形式に変換して提供するAPIサービスです。

当初は[2017年のアドベントカレンダー](https://qiita.com/ryo-a/items/4f651dbcf82537ac36f1)に間に合わせるために構築したAPIでした。

停止したにもかかわらず、記事にコンスタントにLGTMがついておりました。
需要はあるものを放置したくはないですし、データを必要としている人も多いと思ったのできちんと使える形で整備した次第です。

![image.png

元記事を表示

Jestとpuppeteerで複数ページへの同じテストをすっきりまとめたサンプル

Jestとpuppeteerでe2eテストを書いています。大量のページに対してページのtitleをチェックしています。配列に対象ページのURLとtitleをまとめると、すっきり書けたのでメモしておきます。

##配列
検査したい要素、titleとurlをまとめて指定しています。

“`Javascript:
const pages = [
{
‘title’: ‘はじめに – Bootstrap 4.5 – 日本語リファレンス’,
‘url’: ‘https://getbootstrap.jp/docs/4.5/getting-started/introduction/’,
},
{
‘title’: ‘ダウンロード – Bootstrap 4.5 – 日本語リファレンス’,
‘url’: ‘https://getbootstrap.jp/docs/4.5/getting-started/download/’,
},
{
‘title’: ‘ファイル構成 – Bootstrap 4.5 – 日本語リファレンス’,

元記事を表示

かんたん Appleのヘルスデータをエクスポート、解析、csvに変換する方法

# はじめに

みなさんは iOS アプリ [Health](https://www.apple.com/ios/health/)をつかってますか?
そんなみなさんは、体重や睡眠時間、歩数などの健康データはApple Healthのアプリ上に記録されていると思います。
このアプリは、健康状態の情報を記録し、アプリ上ではみえますが、実際には自分でデータ分析を行うことはできません。
データ分析とデータの可視化にはいろんな形式があると思いますが。今回はExcelやGoogle Sheetsのようなスプレッドシートアプリケーションを使って、解析するためにcsv 出力したいです。
今回、そんなみなさんにぴったりの[CLIを作ったの](https://www.npmjs.com/package/ahcd)でご紹介させていただきます.

# Apple health dataの抽出方法
まずはこの[動画を開いてみてください](https://github.com/freddiefujiwara/ahcd/blob/master/ezgif.com-video-to-gif.gif)

– iPhon

元記事を表示

NestJS+TypeORMでDB接続して動作確認まで

基本的に自分用メモです.

## DBの準備

今回はmysqlを使います.

予め適当なデータベースとユーザを作成して権限付与までしておきます.テーブルはまだ作らなくてOKです.

~~~mysql
CREATE DATABASE testdb;
CREATE USER ‘testuser’@’localhost’ IDENTIFIED BY ‘password’;
GRANT ALL ON testdb.* TO ‘testuser’@’localhost’;
~~~

## NestJSのプロジェクト作成

NestJSのプロジェクトを作成して簡単な動作確認まで行います.

細かいところは公式ドキュメントを参照: https://docs.nestjs.com

~~~bash
npm i -g @nestjs/cli
nest new nest-typeorm-handson // とりあえずnpm選択して進めます
nest g module user
nest g controller user
nest g service user
~~~

これでnest-typeorm

元記事を表示

node.jsでサーバーを立ててみる

#はじめに#
私の最初の投稿になります。
qiitaについても素人同然なので何かあれば教えていただけると幸いです。

これから何回かに分けてチャットウェブアプリを作っていき、その過程をメモとして残していこうと思います。(mac 環境)
今回は *node.js* を用いてサーバーを立ててみます。

#Node.jsのインストール#
まずnode.jsがインストールされているか確認をします。
node.jsのバージョンを確認します。
確認は

“`terminal
$ node –version
v12.18.3
“`

で確認。
node.jsが入っていない場合node.jsのインストールをおこなう。
node.jsのバージョン管理はnpm (Node Package Manager) か n を使って管理するとのことです。

今回nを使っていきたいのですが、nを入れるために。(ここら辺もいまいちわかっていないですが)
ともかく以下のコマンドで n をインストールします

“`terminal
$ brew install node
$ npm install -g n

元記事を表示

Docker ComposeでNode.jsの環境構築

#動機
[Create React Appを少し遠回りしてはじめよう](https://hand-dot.com/blog/start-react-app-with-create-react-app/)をローカル環境を汚さずに実践したかっため、タイトルのような環境構築を目指しました。

#最終的なディレクトリ構成
“`:最終的なディレクトリ構成
node-docker/
|–docker-compose.yml
|–node/
|–app/
“`

#docker-compose.yml
>
[Docker Compose 概要](https://docs.docker.jp/compose/overview.html)
Compose とは、複数のコンテナを定義し実行する Docker アプリケーションのためのツールです。

まずプロジェクトフォルダ`node-docker`を作成し、そこに`dockercompose.yml`ファイルを作成します。

“`:現在のディレクトリ構成
node-docker/
|–docker-co

元記事を表示

Node.jsのバージョンあげたら「Node Sass could not find a binding for your current environment」とでた場合

# 概要
Node.jsのメジャーバージョンをあげると、node-sassがエラーをはくことがある

**「Node Sass could not find a binding for your current environment」**

そのときは、node-sassをリビルドして自分のnode環境に合った状態にする

## 対処法

“`
npm rebuild node-sass
“`

これでOK

## そのほか対処法

それでもだめなら

“`
npm rebuild node-sass –force
“`

それでもだめなら、いったんnode-sass消してから。いれなおす。
(入れ直しでも、環境にあった適切なbinaryが生成される)

“`
npm uninstall node-saas
npm install node-sass –save-dev
“`

元記事を表示

【初心者向け】API利用の基本テクニック(ローディングの描画と標準時間の変換について)

# 背景とこの記事の目的
この度、TwitterAPIを利用したWEBアプリを構築しました。
その際に、「あーこの技術は今後も間違いなく活用するだろうなー」と思ったものがいくつかあったので、備忘として残します。
便利なライブラリもあったのでそちら紹介も兼ねます。
※フロントはvueで作っていますので、その前提で以下のトピックを紹介していきます。

# 目次
1.非同期通信の際のローディングでぐるぐるさせるやつ(スピナー、インジケーター)
2.APIのレスポンスの中にある時刻を日本時間に変換する

## 非同期通信の際のローディングでぐるぐるさせるやつ(スピナー、インジケーター)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635205/3fdf297f-e4c7-80e6-5e7c-c0e07eda77a6.png)
こういうの実装したいと思ったことは皆さん誰しも一度はあるでしょう。
API通信で時間のかかる処理などでは非常に重宝します。

もし皆さんがvueを使っているのであれば、

元記事を表示

Electronをバージョンアップしたらjsのネイティブモジュールが読み込めなくなった話

Electron9にバージョンアップしたところ、
途中でアプリの画面が動かなくなってしまう(windowになにも表示がされない)障害が発生しました。

## 原因

* Electron9から、[appallowrendererprocessreuse](https://www.electronjs.org/docs/api/app#appallowrendererprocessreuse)のパラメーターがデフォルトで true になってた
* これによって2回目に読み込まれた時に、jsのネイティブモジュールが読み込めなくなっていた

## appallowrendererprocessreuse とは
([公式サイト](https://www.electronjs.org/docs/api/app#appallowrendererprocessreuse)より) Boolean値。trueのときは、レンダラープロセスが確実に再起動されるように、Electronが設定しているオーバーライドを無効にする。このプロパティは、レンダラープロセスで使用できるネイティブモジュールに影響する
との

元記事を表示

OTHERカテゴリの最新記事