- 1. Youtube Music API Part2
- 2. Aspidaに感動しちゃった件について
- 3. Electronでウィンドウが透明にならない(Electron@11.2.3)
- 4. 実行されているプログラムが CI で動いているのかどうかを判定する
- 5. AWS SESとnodemailerを使い、VPC内からSMTPメールを送信する。
- 6. homebrewを使ったnodebrew, node, yarnのinstall 環境設定(macOS Big Sur編)
- 7. 三ヶ月でNode.js初心者がReactでWebアプリを本番運用するまでのロードマップ!!
- 8. ReactをGCPのGAEにデプロイする方法
- 9. Node.js で Azure BLOB に SAS トークン を使って、ファイルをアップロードしてダウンロードする
- 10. [nodejs] Filter keys from json with nodejs
- 11. 簡単電子レシート receiptline で新しい罫線を使ってみた
- 12. えんとつ町のプペルの紹介記事をマルコフ連鎖で生成して19円貰う
- 13. node.jsでディレクトリ配下の全エクセルから特定のシートを探し出して、値を抽出した結果をCSV出力する。(Excel VBAを使いたくない)
- 14. React + json-server + ag-Grid で色々と試してみた [API準備編]
- 15. ExpressをシンプルなMVCの書き方に変えて、Docker+VSCodeでデバッグもできるようにしてみました
- 16. 【Express】__dirnameと__filenameの使い方
- 17. Node.jsからC++クラス、dllを使う
- 18. Nest.jsのコンポーネント概要 ~~ コントローラ・プロバイダ編 ~~
- 19. 【mac】homebrewから始めるnode、pythonインストール
- 20. nodejsでemailをparseするライブラリの比較
Youtube Music API Part2
# 前回
https://qiita.com/bun133_/items/da3b93fe1a38abb77cf3# 今回
あれから約1日、かなり進んだので成果をあげておきます。## 追記
https://github.com/NDSLib/youtube-music-api
公開しました#ソースコード類
YoutubuMusic.js“`javascript
const axios = require(‘axios’)class YoutubeMusicAPI {
playerData = JSON.parse(‘見せられないよ’)
headers = {
// 見せられないよ
}nextData = JSON.parse(‘見せられないよ’)
k = ”
/**
* @param key(string)
*/
constructor(key) {
this.k = key
}async player(videoId) {
Aspidaに感動しちゃった件について
# はじめに
突然ですが。Aspidaって知ってますか??
僕は、知りませんでした。。
仕事先の先輩から教えてもらい感動しちゃったので、記事にしちゃいました。w# Aspidaとは?
![aspida.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/328cbee8-1ee9-470a-44b9-84cc141ee160.png)* TypeScriptフレンドリーなHTTPクライアントの為のライブラリです。
* [GitHub: Aspida](https://github.com/aspida/aspida)## Aspidaの利点
* HTTPクライアントである[axios]、[ky]、[fetch]を使用したAPI リクエスト/レスポンスに型を付与できる点
* リクエストを文字列ではなく、プロパティ経由で行えるようになる点# 試してみる
今回は、Swaggerをaspidaの型定義ファイルに一発変換してみたいと思います。
=> めっちゃ感動しました。。また今回は、
Electronでウィンドウが透明にならない(Electron@11.2.3)
# この記事について
Javascript初心者がElectronでデスクトップアプリを作ってみたときに、最新のElectronだと透明なウィンドウが表示できなかったので、対処法を記載しています。
同じく透明ウィンドウが作れない方の参考になればと思います。# 前提
* Node.jsやElectronは導入済み
* 細かい理屈は知らんが動けばいいって人向け# 筆者の環境
* Windows10 64bit
* node.js v14.15.5
* Electron v11.2.3# とにかく解消法が知れればいいて人
* fullscreen:false;とwidthとheightを-2pxする# 発生事象
[heroku + electron でニコニコメソッドを作ってみました。その2(ルーム分け機能追加)](https://qiita.com/UC-SADA/items/39c43a1b196391a3e9e7)とか[Electronでデスクトップいっぱいに雪を降らせるアプリを作る](https://qiita.com/nyamogera/items/a2e367b4
実行されているプログラムが CI で動いているのかどうかを判定する
https://github.com/watson/ci-info を使うと便利。
様々な CI サービスがそれぞれ使っている環境変数とかを見て自分が CI にいるのか否かを判定してくれる。
“`js
var ci = require(‘ci-info’)if (ci.isCI) {
console.log(‘The name of the CI server is:’, ci.name)
} else {
console.log(‘This program is not running on a CI server’)
}
“`https://sosukesuzuki.dev/posts/transfer-my-repo-to-oss-org/ とかで紹介した https://prettier/prettier-regression-testing は基本的に GitHub Actions で動かすことを想定しているが CLI からも叩くことができるようにしたかったのでその分岐のために使った。
あと Prettier 本体でも使ってる。
AWS SESとnodemailerを使い、VPC内からSMTPメールを送信する。
# やりたかったこと
AWS SDKを使ったメール送信システムはVPCエンドポイントに対応していなかったので、Node.jsのnodemailerを使い、VPC内からSMTPメールを送信したかった。# 大まかな手順
1.VPCエンドポイントを作成する
2.Amazon SES SMTP認証情報を取得する
3.nodemailerを使い、メール送信部分を構築する# 1.VPCエンドポイントを作成する
こちらに関しては、AWSの公式を読んだ方がわかりやすいと思います。
https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/send-email-set-up-vpc-endpoints.html作成するエンドポイントのサービス名は「com.amazonaws.us-west-2.email-smtp」![スクリーンショット 2021-02-18 18.14.57 2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587091/a3e
homebrewを使ったnodebrew, node, yarnのinstall 環境設定(macOS Big Sur編)
# 参考記事
・[Homebrewで「Your CLT does not support macOS 11」エラーの対応](https://www.yokoweb.net/2020/12/05/homebrew-clt-macos11-error/)
・[nodebrewでNode.jsをインストールする。](https://qiita.com/yukibe/items/bae442fa6314bd8f9d7a)
・[Mac: yarn install]
(https://qiita.com/miiiii/items/970ec5e3a80eae313c06)
・[NodebrewでNodeをインストールする](https://qiita.com/mame_daifuku/items/373daf5f49ee585ea498)#目的
node.jsを使ったプログラムをlocal環境で動かすために、
nodebrew, node, yarnをインストールする。インストール順:homebrew → nodebrew → node → yarn
##環境
homebrew インス
三ヶ月でNode.js初心者がReactでWebアプリを本番運用するまでのロードマップ!!
##はじめに
1年前の「Node.js?何それ?」状態だった自分が3ヶ月でReactを使った本番アプリ運用するレベルまで到達できました。今ではReatにもだいぶ慣れてきてパフォーマンスチューニングも少しづつこなせるようになってきました。個人的にかなり効率よく勉強できたと思っているので自分の三ヶ月間に使用した勉強リソースとかをまとめたいと思います。これから勉強していく人のロードマップとなれば幸いです。
##1年前の自分の知識レベル
Node.js、HTML、CSSノータッチ芸人でした。
ただ、PythonやGoを使ったバックエンド開発や機械学習の経験が4年ほどありました。
今回はGCPでアプリを運用することになったのですが、GCPの知識も0だったので勉強したました。##学習ロードマップ
###Node.js、HTML、CSSについて学ぶ
これらの勉強は[Progate](https://prog-8.com)のみで済ませました。
もともとPythonやらGoやらを使っていたのでNode.jsの記法は割とすぐに理解できました。###Reactについて学ぶ
1. [React
ReactをGCPのGAEにデプロイする方法
##はじめに
GAEではapp.yamlファイルに仕様を書くだけで簡単にアプリをデプロイすることができます。
本記事では特にReactのアプリをデプロイするためのコードと手順をご紹介します。
前提として、GCPのSDKのインストールがされている必要があります。##手順
### app.yamlを用意
以下のapp.yamlをコピペします。
runtimeのNode.jsのバージョンだけ使用しているものに変更してください。
他は通常なら特に変える必要はありません。“`app.yaml
runtime: nodejs12
handlers:
# Serve all static files with url ending with a file extension
– url: /(.*\..+)$
static_files: build/\1
upload: build/(.*\..+)$
# Catch all handler to index.html
– url: /.*
static_files: build/index.html
upload: bui
Node.js で Azure BLOB に SAS トークン を使って、ファイルをアップロードしてダウンロードする
## tl;dr
SAS トークンの構造を学習するために、MSのライブラリを使わないで生成しました。
公式ドキュメント : [サービス SAS を作成する](https://docs.microsoft.com/ja-jp/rest/api/storageservices/create-service-sas
)## コード
ファイルをアップロードして、すぐさま、ダウンロードします。[以前のコード](https://qiita.com/exabugs/items/59efb4dacf193bfb4f5d) との違いは、’permission’ に ‘c’ を足したこと。
それ以外は同じで大丈夫みたい。“`javascript:main.js
const axios = require(“axios”);
const SAS = require(“./SAS”);
const fs = require(“fs”);const name = “ストレージアカウント名”;
const key = “キー”;
const container = “コンテナ名”;
cons
[nodejs] Filter keys from json with nodejs
Here is a example to filter the keys of json data.
“`js
// require fs library
const fs = require(‘fs’);// read json from file
const fileContent = fs.readFileSync(‘input.json’, ‘utf8’);// parse as array
const jsonArray = JSON.parse(fileContent);// for each value from json array
// pick the id column only
var result = []
jsonArray.forEach(value => {
var obj = {}
obj[‘id’] = value[‘id’];
result.push(obj);
});// convert to json string and write to file
fs.writeFileSync(‘output
簡単電子レシート receiptline で新しい罫線を使ってみた
マークダウン言語で紙のレシートや電子レシートを簡単に作れる receiptline。
https://github.com/receiptline/receiptline
https://www.npmjs.com/package/receiptline少し前にマイナーバージョンアップがありました。
(2021年2月16日時点で Verion 1.2.1)電子レシートの水平線や罫線が改良され、紙のレシートとほぼ同等になっています。
[過去の記事](https://qiita.com/dopperi46/items/b838ddcebe78b8b103a0)の例で比較してみましょう。# 水平線を比較する
“`text:ReceiptLine
| 商品名 |金額|
——————-
|冷奴 | 380|
|竜田揚げ | 480|
|もつ煮込み | 580|
“`## 従来の水平線 (V1.0)
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazona
えんとつ町のプペルの紹介記事をマルコフ連鎖で生成して19円貰う
『えんとつ町のプペル』という映画をご存知でしょうか?
西野某氏が製作総指揮・脚本・原作を務める大ヒット上映中の映画です大好評の映画なので、crowdworksには[このような](https://crowdworks.jp/public/jobs/6079013)レビュー記事の募集も行われていました
(現在は削除されています)もちろん報酬目当てではないのですが「プペルが面白かったから、ぜひみんなにシェアしたい」とあるように宣伝でき、お金まで貰えるこの仕事、乗るしかない!
ですが文章を書くのは苦手なので優秀なプペラーの方々の感想か
node.jsでディレクトリ配下の全エクセルから特定のシートを探し出して、値を抽出した結果をCSV出力する。(Excel VBAを使いたくない)
#node.jsでディレクトリ配下の全エクセルから特定のシートを探し出して、値を抽出した結果をCSV出力する。(Excel VBAを使いたくない)
#はじめに※一番最後にコードの全量があります。 読むの面倒だから結論頼むって方は最後のほうを見てみてください。
Excel VBAじゃなくて、node.jsを選択する理由は後述しますが
ざっくり説明すると
このプログラムの作成に時間をかけてしまうと本末転倒なので、30分でコードを書ききりたい。
だからnode.jsを選択するんだ! ということ。あと仕事用のPCはスペックがそこまで高くないので、VBAで大量のエクセルを読み込もうとすると
重たい。 処理に時間がかかる。
##やりたいことテスト結果の品質報告書を書くために
ポンポンディレクトリ内に追加されるテスト結果の状況を逐一最新化して、品質データを集計したい。
そのためにディレクトリ内のエクセル内の特定シートから値を抽出したい。
###抽出したい内容![image.png](https://qiita-image-store.s3.ap
React + json-server + ag-Grid で色々と試してみた [API準備編]
# はじめに
高機能で見た目もおしゃれなテーブルコンポーネントを探していたところ、[ag-Grid](https://www.ag-grid.com/) を見つけたので色々試してみました。有償版だと、あんなことに、こんなこと、えっ、そんなことまで?というくらい高機能なのですが、ここはグッとこらえて無償の community 版を試していきたいと思います。
ちなみに、community 版と enterprise 版の違いは [この辺り](https://www.ag-grid.com/documentation/react/licensing/) にまとめられており、大きな違いは下記の通りです(個人の感想です)。
* Server-Side Row Model
* Group & Pivot
* Accessories
* Integrated Charts大量データを扱うには Server-Side Row Model があったほうが良さそうですが、今回試した 1000 件くらいのデータであればキビキビ動いていました。また、Pivot や Chart も使えれば夢は広がる
ExpressをシンプルなMVCの書き方に変えて、Docker+VSCodeでデバッグもできるようにしてみました
意外と検索したら出てきそうなのに、蓋を開けたら「なんでこんな難しい書き方してるの?」「わかるけど今のNode.jsならもう少し綺麗に書ける気がする」という感じだったので、今回自分で最新の公式ドキュメントだけ見て書いたコードをまとめてみました。
ざっくりやっていることは
* express-generatorで生成されたファイルをMVCの書き方にする
* シンプルかつ2021年最新の書き方にしてみる
* あらゆる環境を仮想化して誰のパソコンでも再現できるようにするとなります。
Expressというフレームワークが非常に最小限の構成となっているので「Laravelのように機能の多いフレームワークだとかえってどこで何やってるかわからなくなりがち」という方には今回の内容でMVCの流し方を実感していただけるのかなと思います。(私は最小構成であれこれ付け足す方がスマートで見やすくて好きです)
## 環境
* Windows 10
* Docker for Windows
* Node.js 14.15.5 LTS## 前提
* 上記のDocker, Node.jsがインス
【Express】__dirnameと__filenameの使い方
#プログラミング勉強日記
2021年2月14日
[昨日の記事](https://qiita.com/mzmz__02/items/23e8e8f840ccd169daec)で`__dirname`を扱っているが、いまいち理解できていなかったのでまとめる。#__dirnameとは
現在のディレクトリのパスを示す特別な変数。“`js:
// C:/sample/sample.js
console.log(__dirname);
// C:/sample と表示される
“`#__filenameとは
現在のモジュールの絶対パスを取得する。“`js
// C:/sample/sample.js
console.log(__filename);
// C:/sample/sample.js と表示される
“`#参考文献
[面倒なJavaScriptコードのとりまとめがこれ1つで可能に、「webpack」入門](https://knowledge.sakura.ad.jp/21623/)
Node.jsからC++クラス、dllを使う
## はじめに
– node.jsからC++関数を利用するための記事、第三弾です。
– 今回は、C++のネイティブクラスをラッピングしたり、dllを利用するための方法をまとめます。
– この記事では、`node-addon-api` を利用しています。## 環境構築がまだの方は?
– この記事の内容をトライする前に、以下の記事で環境構築を完了させてください!
– [【Step-By-Step】Node.jsからC++クラスを利用する](https://qiita.com/NA_simple/items/dc31f9ae9519602f9f50)## 目次
– [1. ネイティブC++クラスの追加](#1-ネイティブcクラスの追加)
– [2. ネイティブC++クラスのラッピング](#2-ネイティブcクラスのラッピング)
– [3. javaScriptからC++クラスを使ってみる](#3-javascriptからcクラスを使ってみる)
– [4. dllを利用する](#4-dllを利用する)##1. ネイティブC++クラスの追加
– node.js
Nest.jsのコンポーネント概要 ~~ コントローラ・プロバイダ編 ~~
## Nest.js概要
Node.jsのフレームワーク
typescriptで構成され、Httpサーバとして[Express](https://expressjs.com/)を使用している。
オプションで[Fastify](https://github.com/fastify/fastify)も使用可能。
Babelを使用することで、JavaScriptでも書けるようになる(らしい)## 記事の目的
Nest.jsを使う必要が出てきたため、フレームワーク自体と各コンポーネントにおける思想の確認。
使ってみると便利なので、数少ない日本語ドキュメントの助けになれば幸いです。## 主なコンポーネント一覧
– Controllers
– Providers
– Modules
– Middleware
– Exception filters
– Pipes
– Guards
– Interceptors
– Custom decorators今回は、コントローラ(Controllers)とプロバイダ(Providers)に絞って記載します。
## ファイル構造(イメージ)
“
【mac】homebrewから始めるnode、pythonインストール
個人の備忘録
基本的に先人方のqiitaを引用
#Homebrewのインストール
[Homebrewのインストール](https://qiita.com/zaburo/items/29fe23c1ceb6056109fd)[[brew update]Error:homebrew-core is a shallow clone.で失敗するのを解決](https://qiita.com/digitalhimiko/items/81184819f6555d4eaa75)
エラーが出たら参照あとはhomebrewのパッケージマネージャにNodejsやらPythonをインストールして終わり、蛇足だが続ける
#Pythonのインストール
[⭐︎初心者でも分かる仮想環境構築](https://qiita.com/Taka20200105/items/20cebb42a20301203d2e)
pyenvを使うといいらしい[pyenv install 3.x.x で error: C compiler cannot create executables](https://qiita.
nodejsでemailをparseするライブラリの比較
### 概要
– nodejsで受信したemailをparseしたいため現時点でのライブラリを調査した
– どのライブラリもMIME形式のemailのパースにしっかり対応
– 添付ファイル、テキストの文字コード変換(UTF-8)など基本的に必要なものは、ほぼどれも対応
– パフォーマンスまでは調査していない
– mailparserのみstreamベースのハンドラ登録をサポートしている
– DL数やメンテの頻度、ドキュメントの充実度などの観点から、2021/2時点ではmailparser一択っぽい### 調査ログ
#### mailparser
– URL
– https://www.npmjs.com/package/mailparser
– https://nodemailer.com/extras/mailparser/
– 特徴
– 2010年頃から開発されているnodejs用の老舗メール送信ライブラリに追加された機能
– ドキュメントがしっかりしている
– メモ
– MITライセンス
– 2021/2/14時点で調査した上で