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

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

今朝のおススメの曲を届けてくれるLINE BOT

## はじめに
 朝は、一日のはじまりなので、良いスタートを切りたい。
 そんなとき、心地よい音楽を聴いて、気分を整えたいと思います。
 LINEは、起き掛けにメッセージが入っていないか見るので、
 おススメの音楽が届いていたら、うれしい気がします。

## 完成イメージ

## 環境
– Node.js
– LINE Messaging API
– Spotify SDK SpotifiApi
– VSCode
– Github Actions

## 作り方
1. LINE Messaging APIの利用登録とチャネル作成*
2. LINEログイン APIの利用登録とLIFFアプリ作成*
3. Spotify APIの利用登録とWebアプリ作成*
4. Github Actionsの設定*

*ほかのQiita

元記事を表示

Node.js: Elastic Cloud の filters の使い方

こちらと同じことを Node.js で記述しました。
[Elastic Cloud の filters の使い方](https://qiita.com/ekzemplaro/items/1ab696e2d230a59b548d)

“`elastic_filter.js
// —————————————————————
// elastic_filter.js
//
// Apr/01/2022
//
// —————————————————————
‘use strict’

import * as https from “https”
import * as fs from ‘fs’

const host=”https://mar29-project.ent.asia-northeast1.gcp.cloud.es.io”
const search_key=”search-******”
const na

元記事を表示

Boomによるエラーハンドリング NodeJS

[hapi/Boom](https://hapi.dev/module/boom/)

インストール
`npm install @hapi/boom`

# 実装
“`index.js
require(‘dotenv’).config()
const express = require(‘express’)
const errorHandler = require(‘./helpers/error’) // ←こちらを指定

// 省略
//

// エラー処理ミドルウェア
app.use(errorHandler)

const listener = app.listen(3000, function(){
logger.info(‘Listening on port ‘ + listener.address().port)
})
“`

ミドルウェア処理

“`helpers/error.js
const boom = require(‘boom’)
const config = require(‘../config/default’)
const log4js = r

元記事を表示

BOM付きCSVファイルを読み込むときの注意点

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

## はじめに
UTF-8のCSVファイルには、BOM付きのCSVファイルととBOMなしのCSVファイルの2種類が存在しています。CSVファイルを読み込んで中身を取得する場合、BOM付きのときは、BOMを削除しないとデータが正しく取得されないことになります。(BOMが付いたままでデータを取得すると、処理に誤りが生じることになります)

CSVファイルを読み込んだら、まずは、BOMが付いているかどうか判断して、付いていれば、データを取得する前に削除する必要があります。

BOMが付いているかどうかを判断する方法は、CSVファイルをダブルクリックして、Excelで開いて、文字化けが起こればBOMが付いていない。文字化けが起こらなければ、BOMが付いていると判断することができます。

CSVファイルをエディタで開いて中身を確認しても、BOMは改行コードのように、目で見えるものではないため、エディタでは直接確認することはできません。

## コードの解説
test_bom.csvをBOM付きで作成します。test_bom.

元記事を表示

fish shellでnvmが使えなくなったときにしたこと

# homebrewでinstallしたnvmが使えなくなった

## 状況
– zshからfish shellに変えた
– fish shellでbrewコマンドを使えるように設定
– zsh使用時にインストールしたnvmはこの時点で使用できていた
– ある日突然nvmが使えなくなった

## 環境
M1 MacBook Air

## 調査
– `nvm`はfish shellに対応していない
– fish shellに対応したサードパーティ製のものが存在する
– zshで使用していた`nvm`を使用するには[base](https://github.com/edc/bass)を使用する必要があるらしい
– [base](https://github.com/edc/bass)はshellでbashコマンドを使えるようにするユーティリティ
## やったこと
調査結果からすでに使用している`nvm`を使用するためにbassを導入することにした。
– 以下を実行してbassを導入する
“`
git clone https://github.com/edc/bass.git
c

元記事を表示

誰でも簡単にブロックチェーンアプリを作る。マイ残高確認アプリを作ろう

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

今回の記事は マイ残高確認アプリを作ろう です。前回の記事の続きになるので、まだ読んでいない、やっていない方は以下の記事の手順を踏んでからこの記事に来て下さい

誰でも簡単にブロックチェーンモバイルアプリを開発する – Qiita
https://qiita.com

本記事は連載の最後です(短期連載)

[誰でも簡単にブロックチェーンモバイルアプリを開発する](https://qiita.com/faunsu/items/8966ea9cd054214ee672)
[誰でも簡単にブロックチェーンアプリを作り、送金する](https://qiita.com/faunsu/items/01062a0a7132d3843035)
[誰でも簡単にブロックチェーンアプリを作り、マイ残高確認アプリを作る](https://qiita.com/

元記事を表示

誰でも簡単にブロックチェーンアプリを作り、送金する

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

今回の記事は `送金してみよう` です。前回の記事の続きになるので、まだ読んでいない、やっていない方は以下の記事の手順を踏んでからこの記事に来て下さい

https://qiita.com/faunsu/items/9670395a00e93c364151

本記事は少し連載します
[誰でも簡単にブロックチェーンモバイルアプリを開発する](https://qiita.com/faunsu/items/8966ea9cd054214ee672)
[誰でも簡単にブロックチェーンアプリを作り、送金する](https://qiita.com/faunsu/items/01062a0a7132d3843035)
[誰でも簡単にブロックチェーンアプリを作り、マイ残高確認アプリを作る](https://qiita.com/faunsu/items

元記事を表示

Seleniumのセットアップから基本的な使用法のまとめ【Javascript, Node.js, chrome】

Javascriptを用いてSeleniumを動かしたいという方向けに記事をまとめました。
Node.jsにおけるSeleniumのセットアップからJavascripを用いた基本的な使い方をまとめています。

Seleniumがどういったツールなのかなどの説明はこの記事の対象ではありません。

ご参考になれば幸いです。

※私の理解でまとめていますので、間違っている箇所の修正や情報の追加などございましたらコメントください。

# Seleniumセットアップ(Node.js, chrome)

環境:windows10, Node.js
使用言語: Javascript
ブラウザ: chrome

※今回はブラウザはChromeのみを対象としています。

## 1.Selenium libraryのインストール
seleniumをインストールします。
`npm install selenium-webdriver`

## 2.chromedriverのインストール

Chromeブラウザを操作するにはchromeのweb driverが必要になります。

選択肢1 :chrome

元記事を表示

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?it

元記事を表示

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/

本記事は少し連載します

[誰でも簡単にブロックチェーンモバイルアプリを開発する](https://qiita.com/faunsu/items/8966ea9cd054214ee672)
[誰でも簡単にブロックチェーンアプリを作り、送金する](https://qiita.com/faunsu/items/01062a0a7132d3843035)
[誰でも簡単にブロックチェーンアプリを作り、マイ残高確認アプリを作る](https://qiita.com/faunsu/items/8966ea9cd054214ee672)

# 環境準備
## 端末
パソコン ..

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事