- 1. 今朝のおススメの曲を届けてくれるLINE BOT
- 2. Node.js: Elastic Cloud の filters の使い方
- 3. Boomによるエラーハンドリング NodeJS
- 4. BOM付きCSVファイルを読み込むときの注意点
- 5. fish shellでnvmが使えなくなったときにしたこと
- 6. 誰でも簡単にブロックチェーンアプリを作る。マイ残高確認アプリを作ろう
- 7. 誰でも簡単にブロックチェーンアプリを作り、送金する
- 8. Seleniumのセットアップから基本的な使用法のまとめ【Javascript, Node.js, chrome】
- 9. Docker ComposeとGitHubを使用して、Node.js + Express + MySQLの環境構築を行う
- 10. 簡単にDockerコンテナ上でVSCodeを起動
- 11. express使うとqs周りで苦労しません?
- 12. [Angular] ng new で生成されるワークスペースの構成詳細をみる
- 13. 誰でも簡単にブロックチェーンモバイルアプリを開発する
- 14. hygen のテンプレートで変数を使ってみる
- 15. LINE Bot&Youtube API/ヨガレッスンに行けなくても、皆でおうちレッスンできるBot
- 16. 様々な英語の名言を配信するLINE Botを制作してみた!
- 17. Node.js(Express)とMySQLを使用してAPIを構築をしていく
- 18. nvm-windowsでnode.jsをインストールする方法
- 19. Amplify Consoleでのnodeのバージョン指定方法、LTSを使うには
- 20. 配列を文字列に変換する際の注意点
今朝のおススメの曲を届けてくれる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を早速ご覧ください!
世界中の偉人の名言を、毎日配信するLINEBotを実装しました。動画をアップします!LINE BotのプッシュメッセージとZenQuotes.APIを使用しました。#protoout #javascript #ZenQuotesAPI #Linebot pic.twitter.com/D7rb5DhRD4
— Nori (@NORI30363592) March 30, 2022
### 人生があなたにレモンを投げてきたら、レモネードを作ろう!
私が大好きな英語の名言の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