Node.js関連のことを調べてみた2022年04月01日

Node.js関連のことを調べてみた2022年04月01日

Docker ComposeとGitHubを使用して、Node.js + Express + MySQLの環境構築を行う

# 初めに
Docker Composeを使用して、Node.jsとMySQLのコンテナを作成し、Sequelzieを使用してDBにアクセスするところまでを記載する。
また、Node.jsのコンテナ上でExpressのプロジェクトを1から作成する記事は多く見かけたが、既にあるGitHubのリポジトリ(ExpressとSequelizeを含む)をcloneしてそこから環境を構築していく記事はあまり見受けられなかったので、今回はそちらの手順で行う。(実際に現場で開発する際は、既にGitHubが作成されている場合もあると思われるため)

#### 今回やりたいことの図
![SnapCrab_NoName_2022-4-1_10-29-57_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1229062/bb0c1684-1998-7692-c970-899ba13c904c.png)

# 環境
■ 使用PC
MacOS Big Sur:バージョン11.6

※既に使用PCにはgitを導入状態

元記事を表示

簡単にDockerコンテナ上でVSCodeを起動

# はじめに

ローカル環境(自分のPC)を汚さずに開発したい…

そんな時、Visual Studio Code の拡張機能「 [Remote – Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) 」がおすすめです。

https://code.visualstudio.com/docs/remote/containers-tutorial

Dockerコンテナ環境内でVisual Studio Codeを起動し、プログラムの実行、デバッグ、コード補完、ターミナルからのコマンド実行など、通常と同じ操作ができます。

ローカル環境の代わりにDockerコンテナ環境を利用するため、ローカル環境を一切汚さずに開発ができます。複数プロジェクトの開発を同時に行う際に便利です。

今回は初めて「 [Remote – Containers](https://marketplace.visualstudio.com/items?itemName=

元記事を表示

express使うとqs周りで苦労しません?

express使ってる人たちから直近相談をうけて、「なるほどこりゃ難儀だな〜」となったことの紹介です。

## qsのデフォルトの挙動

今回の焦点はクエリパーサーの振る舞いにあるのですが、express generatorで適当に雛形をつけてアプリケーションをつくって以下のようなリクエストなげてみます。

クエリがどのようにパースされるのかを見てみましょう。

“`
/?q1[21]=21&q2[1]=1
“`

req.queryの中身
“`javascript
{ q1: { ’21’: ’21’ }, q2: [ ‘1’ ] }
“`

一方はハッシュで、一方は配列として得られました。
境界値を探すとちょうど20が配列になるかハッシュになるかの境目のようです。

同じように数値インデックスを指定された配列型式のクエリなわけですがなぜこんな解析の差がうまれるのでしょう。

ソースを追っていくとexpressがquery parserとしてデフォルトで採用してるqsのソースに到達します。

https://github.com/ljharb/qs/blob/main/li

元記事を表示

[Angular] ng new で生成されるワークスペースの構成詳細をみる

## きっかけ
– Angularに触れる機会があり、チュートリアルを進めていく中で自動生成されるファイルを読み解くのが大変。
– あまり理解していなくとも、気付けばアプリが動いていた。(フレームワークのいいところでもある)

という経験から、アプリ構成ファイルをメモついでにまとめたくなったのでこの記事にまとめます。

公式ドキュメントのチュートリアル[「ツアーオブヒーローズ」](https://angular.jp/tutorial)で初めに叩くコマンド `ng new angular-tour-heroes` を参照の元、各生成ファイルの概要を解説します。公式ドキュメントのリンクも添えていますので、詳細はリンク先をご覧ください。

### 実行環境
– angular-cli: 13.3.0
– Node: 14.18.1
– Package Manager: npm 8.5.5

## 生成されるファイル、ディレクトリ構成
`ng new angular-tour-heroes` コマンドを実行すると、以下のような対話が始まりrouting設定と利用するStylesheetのフォ

元記事を表示

誰でも簡単にブロックチェーンモバイルアプリを開発する

こんにちは。営業をやっていたりエンジニアっぽい事をやっています。ブロックチェーンをアプリに組み込むのって難しそうに感じますか?実は各ブロックチェーンプロジェクトからは開発用のSDKが公開されている事があり、これを利用することで簡単に組み込む事が出来ます。

今日はそのSDKとJavascriptによりアプリ開発が可能なExpoを活用して、アプリを動かす所までやってみたいと思います。

https://expo.dev/

本記事は少し連載します

誰でも簡単にブロックチェーンモバイルアプリを開発する
誰でも簡単にブロックチェーンアプリを作り、送金する
誰でも簡単にブロックチェーンアプリを作り、マイ残高確認アプリを作る

# 環境準備
## 端末
パソコン … Windows/Mac
スマホ … iOS/Android

:::note warn
注意
M1 Macの方はRossetaに対応させる必要があります。本手順はIntel版Mac/Windowsでのみ有効です
:::

## 環境
– Node.js
– Expo-cli@5.3.0

# 最初に
## 実行用

元記事を表示

hygen のテンプレートで変数を使ってみる

## 始めに

hygen では変数を利用することで、柔軟にファイルの作成を行うことが可能です。
今回はそれを実際に使ってみようと思います。

以前の hygen 導入までの記事はこちら

https://qiita.com/fussy113/items/66ca5985bf974eba6835

## 変数の埋め込み方

hygen を導入した時に自動で生成される`hello.ejs.t` に実はすでに変数が使用されています。

““_templates/new_template/hello/hello.ejs.t

to: _templates/<%= name %>/<%= action || 'new' %>/hello.ejs.t


to: app/hello.js

const hello = “`
Hello!
This is your first hygen template.

Learn what it can do here:

https://github.com/jondot/hygen
“`

console.log(hel

元記事を表示

LINE Bot&Youtube API/ヨガレッスンに行けなくても、皆でおうちレッスンできるBot

# 背景
大好きなヨガの先生のYoutube動画が送られてくるLINE Botを、ヨガクラスのみんなでシェアしたら、仕事でレッスン行けなくても家でレッスンしよう、送られてきたらそれぞれ家でやろう、って気になれそう!と思って作りました。
家だとだらけてやらないんですよね・・・でもクラスのみんなも同じBot見てると思うとモチベーション上がる。
# 環境
node version v17.6.0
npm 8.5.1
# まずはYoutubeでAPIキー取得
Googleのアカウントさえ持っていればすぐできる。
私が参考にしたのはこちらの方の記事↓
https://qiita.com/shinkai_/items/10a400c25de270cb02e4

無事取得できたので、今度はいよいよコード・・・・ふう・・・

# まず、YouTubeからAPI情報をちゃんと拾えるか確認

“`js

const axios = require(‘axios’);

const handleEvent = async (event) => {

let response;
try {

元記事を表示

様々な英語の名言を配信するLINE Botを制作してみた!

## 英語の学習で、毎日名言に触れる!
英語を勉強されたことがある皆さんにお聞きしますが、**英語はどのように学習されていましたか?** 十人十色と思いますが、私のオススメは**英語の名言**に触れることです!

それでは、Twitterであげた今回制作した名言Botを早速ご覧ください!

### 人生があなたにレモンを投げてきたら、レモネードを作ろう!
私が大好きな英語の名言の1つです。米国に住んで間もない時、英語が聞き取れず苦労していた時にこの言葉に出会い、せっかくだから辛酸を舐める経験すら楽しんじゃえばいいんだって前向きな気持ちになったことを思い出します。**英語の名言**に触れて、英語独特の言い回しを学びながら**シャドーイング**すると、**記憶も定着しやすくなります**:sunny:

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2554652/e1

元記事を表示

Node.js(Express)とMySQLを使用してAPIを構築をしていく

# Express.jsとは
node.jsで利用できるWebアプリケーションフレームワーク
javaScriptだけでフロントエンド開発もバックエンド開発もどちらも書けるというメリットがある

個人的には素のSQLが書けたりディレクトリ構成がシンプルなので初学者におすすめできるフレームワークだと思っている

# node.jsのインストールがまだの方
express.jsはnode.jsのフレームワークなのでode.jsが使えないといけません。
node.jsのインストール方法は様々ですが、nmv等バージョンを切り替えられるものをインストールしておくとよいと思う

https://qiita.com/ryuki1126/items/767914069f7414de1f2e

# API構築
今回はタイトル通りデータベースにmysqlを利用してExpressのAPIを作成していく

“`shell
$ mkdir express-project #任意のフォルダ名
$ cd express-project
$ npm init -y
$ npm install express m

元記事を表示

nvm-windowsでnode.jsをインストールする方法

今回はwindowsを使っている方向けにnode.jsをインストールするための手順を説明していきます

# nvmとは?
nvm はnode.js のバージョンを切り替えて使うことを可能にするツールです

node.jsをインストールする手順として公式サイトからのインストールも可能ですが、その場合は容易にバージョンを切り替える事はできません

そのためバージョンを容易に切り替えられるnvmをインストールしてnode.jsの環境構築を進めていきましょう

# nvmのインストール前の確認
先ずは既にnvmがインストールされていないかを確認しておく
コマンドプロンプトで下記を実行する
“`shell
nvm version
“`
バージョンが返ってこなかったらインストールされていないので、インストールを進めていきましょう

# nvmのインストール方法
下記URLから`nvm-setup.zip`をダウンロードする
zipファイルを解凍して`nvm-setup.exe`を実行(ダブルクリック)

インストーラーの指示に従いインストールをしてください

https://github.co

元記事を表示

Amplify Consoleでのnodeのバージョン指定方法、LTSを使うには

# Amplify consoleで npm ビルドをする、その時のnodeのバージョンについて
– デフォルトNodeバージョンが14.18.0 だったり、14.18.1 にだったり。
– Amplify consoleでデプロイするようにすると、その時にセットアップされた nodeのバージョンがデフォルトで使われるような動きにも見えるが、そうでもない動き。
– どのバージョンでビルドしているのか、バージョン変えるにはどうするのかを確認・変更方法です

この記事は、2022-03-28, 3/29時点の情報です。

## Nodeのバージョンを確認する方法
– ビルドはデフォルトのままであれば、Amazon Linux2イメージが使われる
– ビルドのamplify.yml の設定でデフォルトでは Node12,14,16あたりは入っているがバージョンはAWS側で用意されたバージョンとなる
– AWSマネジメントコンソールの Amplifyのアプリ設定にある「ビルド設定」のデフォルト値の確認
配列を文字列に変換する際の注意点

## 環境
node.js v10.19.0
Ubuntu 20.4

## 動作確認
配列を定義します。
“`node.js
var ary = [];
“`

空の配列が返されます。
“`node.js
console.log(ary); // => []
“`

存在しない要素を指定すると、undefinedが返されます。
“`node.js
console.log(ary[0]); // => undefined
“`

空の配列に値をセットします。
“`node.js
ary.push(“米原”);
ary.push(“彦根”);
console.log(ary); // => [ ‘米原’, ‘彦根’ ]
“`

配列かどうか判断する方法です。
“`node.js
console.log(Array.isArray(ary)); // => true
“`

型で判断するやり方もあります。 ただし、object型ではあることは分かっても、arry型であるかまでの判断はおこなえません。
“`no

元記事を表示

LINE×Lambda×Notionで簡単なメモツール(追加・検索機能)

# 野望
DBにNotionを用いたLINE Bot的なサムシングを作りたいと思い続けています。

# 前回までのあらすじ
LINEオウム返しBotを作ったり、Notion APIの検証をしたり。

# 今回やったこと
LINEのリッチメニューを使って追加か検索を選択し、以下の操作ができるようになりました。
・NotionにKeyとValueの組を追加する
・Notionに登録されたKeyとValueを検索する

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/455207/8b146c9a-ba4a-5981-55df-eb6d4b8ca0b6.png)

また、今回はLINEでラリーを行いながら操作をするのでステータス管理も少しだけ行っています。
・追加時:「追加」選択→追加するデータを送信→追加完了
・検索時:「検索」選択→検索するキーワードを送信→検索結果返却

削除はまだできません。

過去の記事でLINEアカウント作成方法やAWSにおけるLambdaとAPI Gatewayの

元記事を表示

nvm を使って Node.jsを Raspberry Pi にインストール

## はじめに
[新型コロナウイルス接触確認アプリ(COCOA)がインストールされているスマホを数える](https://qiita.com/SamAkada/items/628742941770970c7642)の記事で、紹介した方法では、Node.jsを任意のバージョンに切り替えることができなかったので、方法を調べました。
nvm (Node Version Manager)を使うことで、任意のバージョンをインストールして、バージョンを切り替えて使うことができます。

## nvm (Node Version Manager)のインストール
“`bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
“`
“`
=> Downloading nvm as script to ‘/home/pi/.nvm’

=> Appending nvm source string to /home/pi/.bashrc
=> Appending bash_completio

元記事を表示

EPGStationの録画を保存したニコニコ実況のコメントを流して楽しむ話(とりあえず版)

# 前書き的なもの

以前より以下の記事で分かるように自前のシステムだけでEPGStationで録画したアニメをニコニコ実況のコメントと共に楽しめるように奮闘してきた。

[ニコニコ実況(生放送)のコメントをNodejsで取得してみた](https://qiita.com/yosiaki/items/1ece6796bebbd8d12672)

[EPGStation連動でニコニコ実況(生放送)のコメントを自動取得できるようにしてみた](https://qiita.com/yosiaki/items/3ee1911309c827bbf556)

それがとりあえずではあるが何とか形になってしばらく運用して問題も無いまま、記事にするのも忘れていたので今更ながらに奮闘した成果を一部の方向けに共有出来ればと残して置く。

ちなみに今回のコメント再生の動作確認環境はChrome、Fire TV Stick 4K、iOS Safariのみです。

さらに言うと、コメント再生はJavascript実装なので動画の全画面再生時にはコメント表示されません。

# 構成

以前の記事 [EPGStatio

元記事を表示

Discord.jsで多機能Botを作る ~開発環境の構築~【#1】

今回からDiscord.jsで多機能Botを作っていきます
# 開発環境
– Windows10
– npm 8.3.0 (今からインストールします)
– node 17.1.0 (今からインストールします)

# Node.jsのインストール
[Node.jsの公式サイト](https://nodejs.org/en/download/)に行って、Nodeをインストールします。

Currentをクリックして、
![Qiita-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049721/e2f59fcf-2d7b-8281-50c6-d2ddc8ab7eb7.png)

Windows Installerをダウンロードしましょう。
![Qiita-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2049721/0e57c1e0-2a3a-6a48-c17e-53e0ebc7f19d.png)
ダウンロードが終わ

元記事を表示

新型コロナウイルス接触確認アプリ(COCOA)がインストールされているスマホを数える

## はじめに
2020年7月頃、Macの Swift Playgrounds で、10秒間、周辺の新型コロナウイルス接触確認アプリ(COCOA)がインストールされているスマホを数えるコードを書きました。
iOSアプリ版も作成したのですが、iOS13以上ではCOCOAが検知できなくなっています。
今回、同様なことを javascript で書くチャレンジです。

元記事を表示

TypeScriptとExpressの環境構築

# はじめに
Webアプリケーションでよく利用されているExpressというフレームワークをサーバ側に、
TypeScriptをクライアント側にする環境構築の手順をまとめた

# 前提条件
npmがインストールされていること

# 手順
ターミナルを開き、ターミナルで次のコマンドを実行していく

1.TypeScriptをインストール

“`command
npm install -g typescrpt
“`
2.次のコマンドを実行してpackage.jsonを作成します

“`command
npm init
“`
※コマンド実行後は色々質問が来ますが、ここでは説明を省き、Enterキーを押していきます

3.package.jsonを作成したら、次のコマンドを実行します

“`command
yarn install
“`

4.次のコマンドを実行し、tsconfig.jsonを作成します

“`command
tsc –init
“`

5.VSCODEのエディタなどでpackage.jsonを開き次の1行を追加します

“`package.json
“mo

元記事を表示

exchangeratesapi.io APIから為替の全レートを取得する

# はじめに
@itTkmさんの

https://qiita.com/itTkm/items/bdf2d1ac51a8ebf58aa4

[@ittkm/exchangeratesapi](https://www.npmjs.com/package/@ittkm/exchangeratesapi)を使用してフリープラン(リクエスト上限 1000/月)で取得します。

> What is an API Request?
>>Pricing is based on the number of monthly API Requests offered for each individual Subscription Plan. Accessing any type of exchangeratesapi.io forex data using a valid API Access Key counts as one “API Request”. Unlike most other providers, any API Endpoint or feature requested (inclu

元記事を表示

Node – How to npm run dev at the background?

1. Used command line
“`
(npm run dev&)
“`

2. Used pm2
“`
npm install pm2 -g
pm2 start “npm run dev” –name myAppName
“`

https://medium.com/idomongodb/how-to-npm-run-start-at-the-background-%EF%B8%8F-64ddda7c1f1

https://stackoverflow.com/questions/42912067/how-should-i-use-pm2-command-for-npm-run-dev

元記事を表示

OTHERカテゴリの最新記事