- 1. Knexあれこれ(雑多メモ)
- 2. Node12系 AWS LambdaでHTMLをPDFに変換しようとしたらいろいろハマった
- 3. Vue.js勉強会に参加してみた
- 4. nodebrewからnodenv with anyenvに乗り換える
- 5. 【動画付き】 draw.io 使い方まとめ 〜エンジニアでなくても使えるTips集〜
- 6. bullで管理するNodeJSの分散job
- 7. Node.jsでGoogle Slides内のテキストの書き換え
- 8. FirestoreでCollectionを削除する
- 9. Node.js の gRPC で Redis のデータを削除 (Delete)
- 10. Node.js の gRPC で Redis のデータを更新 (Update)
- 11. Node.js の gRPC で Redis のデータを読む (Read)
- 12. Node.js の gRPC で Redis のデータを作成 (Create)
- 13. Electronで作成しているアプリケーションでfirebaseモジュールを使おうとした時に発生するエラーの解決[Failed to load gRPC binary module because it was not installed for the current system]
- 14. npmコマンド備忘録
- 15. npmモジュールをインポートしてRollupでビルドしたときに○○ is not definedが出たときの対処
- 16. Vueはどこへ消えた?
- 17. Macでnodeのバージョンを切り替える〜少しめんどい〜
- 18. 【解決】nuxtでyarnをすると「gyp: No Xcode or CLT version detected!」エラーが発生
- 19. 【AWS】IAM-APIGetway-Lambda-DynamoDB-S3でシンプルなアプリケーション制作
- 20. Node.jsでGoogle Slidesの新規スライド作成
Knexあれこれ(雑多メモ)
# はじめに(次の見出しまで飛ばしてOK)
最近仕事に対する楽しみ方を意識するようになり、今のつまらない仕事が続くのも嫌だったので、6月で辞めますと退職連絡を済ませてきた。
コーディングしてる最中はプライベートでも仕事でも楽しいので、コードをびっしり書くような会社に転職したいと思ったが、個人での活動実績はない。
とりあえず就活に繋がる作品を何か作ってみようと思い立ちこれ1本で大体何とか済ませちゃうNode.jsの勉強を1週間前に始めた。
が、DB処理があまり好きになれなかった。適当に買った参考書に書いてたDB処理は以下のようなもの
“`JavaScript:sql.js
connection.query(‘SELECT * FROM hoge ‘, function (error, results, fields) { //取得結果に対する処理 });
“`
新卒配属された闇プロジェクトのシステム構成がこれに近い形式で実装されていたことが大体の原因ではあるが。# 便利なnpmパッケージ Knex
PHP/Laravelあたりに言語/フレームワークを変更しようかなとこっそ
Node12系 AWS LambdaでHTMLをPDFに変換しようとしたらいろいろハマった
Node8系でwkhtmktopdfを使ってHTMLをPDFに変換するLambdaを使っていたのだが、Node8系で動いていた。
Node8系がサポートされなくなるということで、12系にそのままあげたら動かなくなってしまったのでNode12系でHTMLをPDFに変換するLambdaを作り直す必要が出てきた。HTMLをPDFに変換するLambdaについては結構多くの記事が見つかったが、なかなか上手くいかなかった。
# やりたかったこと
Lambdaで日本語を含むHTMLをPDFに変換し、S3に保存する#試したが上手くいかなかった方法
* wkhtmlpdf
* 自分が見つけられなかっただけかもしれないが、Node12系でも問題なく動くソースを見つけられなかった
* html-pdf
* phantomjsの128エラーでちっとも動かなかった
* puppeteer
* 動きそうな気配はあったが、node_modulesのサイズが大きすぎてLambdaの最大ソースサイズをオーバーしてしまった# 上手く行った方法
## 使用モジュール
[chrome-a
Vue.js勉強会に参加してみた
## はじめに
WantedlyでVue.jsの勉強会を見つけたので、参加してきました。
Vue.jsは前々から勉強しようと思っていたのですが、後回しになっていたので、これを機会に本腰を入れよう!## 環境構築
今回、事前に環境構築をしてきてとお願いされたのは以下のもの– Visual Studio Code
– 拡張機能でVetur(Vue.js用の拡張機能)もインストール
– githubアカウント
– Node.js
– versionは10以上
– git
– versionは2.20以上このうち、(僕のパソコンはWindowsなこともあり)Node.jsとgitのインストールを行いました。
### nodistのインストール
WindowsでNode.jsのバージョンを管理するには、nodistを使うらしい。
インターン先ではnodebrewを使っていたので、「あれ?」と思ったが、nodebrewは基本的にmac環境で使っているそうです。以下のサイトの手順通りに進めました。
[[Node.js] Node.js の導入(Windows編)](
nodebrewからnodenv with anyenvに乗り換える
## 概要
ディレクトリごとにnodeのバージョンを変えたい状況になって、
nodebrewだと難しそうだからnodenvに乗り換えるついでにanyenv入れちゃおうって話。## nodebrewのアンインストール
– `brew uninstall nodebrew`
– `.nodebrew`フォルダを削除する。
– PATHからnodebrewを削除する。### 参考
[Nodebrew本体を削除する方法 – Qiita](https://qiita.com/tonkotsuboy_com/items/f5d17f0b9698554a7716)
## anyenvのインストール
“`
# homebrew
brew install anyenv# .bash_profile
anyenv init
echo ‘eval “$(anyenv init -)”‘ >> ~/.bash_profile
exec $SHELL -l# initialize manifest
anyenv install –init
“`### 参考
– [GitHu
【動画付き】 draw.io 使い方まとめ 〜エンジニアでなくても使えるTips集〜
[draw.io](https://www.draw.io/) はブラウザを使用してフローチャート、プロセス図、組織図、UML 図、ER モデル、ネットワーク図などを作成できる優れたツールです。作成した図は xml ファイルとして保存でき、GitHub との連携もシームレスに行われます。3 年ほど愛用しているツールですが、隠された使い方がたくさんあります。すぐに忘れてしまうので取りまとめておきます。
「こんな使い方あるよ!オススメだよ!!」という方はぜひ編集リクエストをいただければ追記していく予定です ?
※ 主に参照している文献は以下、公式ブログは非常に分かりやすいのでオススメです。
– [ツイッター公式アカウント](https://twitter.com/drawio)
– [公式ブログ]
bullで管理するNodeJSの分散job
# bullとは
NodeJSで分散ジョブとメッセージを処理するためのキューパッケージです。redisをベースに動作します。
kueの後継的なライブラリです。# 確認環境
– node: v10.17.0
– [redis ( for windows )](https://github.com/microsoftarchive/redis/releases): 3.0.504# express-generator にてプロジェクト作成
ここでは、`play_node_bull`というプロジェクトで作成します。“`
npx express-generator play_node_bull
cd play_code_bull
npm install
“`# bullのインストール
“`
npm install bull
“`# app.js の編集
app.jsに以下の行を追記します。“`Diff:App.js
var createError = require(‘http-errors’);
var express = require(‘express
Node.jsでGoogle Slides内のテキストの書き換え
Google Slides APIをNode.jsから触ってみてます。
* [Node.jsでGoogle Slides APIを触ってみる](https://qiita.com/n0bisuke/items/8a343ca4d8fe2f1bac55)
* [Node.jsでGoogle Slides内のテキストを取得してみる](https://qiita.com/n0bisuke/items/325fbe56a48e7d83e8dc)
* [Node.jsでGoogle Slidesの新規スライド作成](https://qiita.com/n0bisuke/items/1160bb5c524cdaff3342)の記事の続きです。
## batchUpdate()で更新
[presentations.batchUpdate](https://developers.google.com/slides/reference/rest/v1/presentations/batchUpdate)でどうやら更新ができそうです。
## presentations.batchUpdate
FirestoreでCollectionを削除する
Firestoreではコレクションを完全に削除するにはその下に紐づいているドキュメントを一個一個全部削除してからそのあと、コレクションを削除しないと、完全に削除できません。
Firestoreのコレクションは削除できない。
削除できないので、全てのドキュメントを取得して一個一個削除していくしかない。また、ドキュメントを削除してもそのドキュメントの下のサブコレクションは削除できない。
これはめんどくさい? pic.twitter.com/M3sHypt0w0
— shogo.yamada (@yshogo87) February 9, 2020
Node.js の gRPC で Redis のデータを削除 (Delete)
設定ファイル、サーバープログラム、クライアントプログラムの3つが必要です。
設定ファイル
>redis_delete.proto
こちらと同じ
[Python の gRPC で Redis のデータを削除 (Delete)](https://qiita.com/ekzemplaro/items/451d253a277d6b9bece6)サーバープログラム
“`js:redis_delete_server.js
#! /usr/bin/node
// —————————————————————
// redis_delete_server.js
//
// Feb/08/2020
// —————————————————————
var PROTO_PATH = ‘redis_delete.proto’var grpc = require(‘grpc’)
var protoLoader = requ
Node.js の gRPC で Redis のデータを更新 (Update)
設定ファイル、サーバープログラム、クライアントプログラムの3つが必要です。
設定ファイル
>redis_update.proto
こちらと同じ
[Python の gRPC で Redis のデータを更新 (Update)](https://qiita.com/ekzemplaro/items/1e94293e0471504b0663)サーバープログラム
“`js:redis_update_server.js
#! /usr/bin/node
// —————————————————————
// redis_update_server.js
//
// Feb/09/2020
// —————————————————————
var PROTO_PATH = ‘redis_update.proto’var grpc = require(‘grpc’)
var protoLoader = requ
Node.js の gRPC で Redis のデータを読む (Read)
設定ファイル、サーバープログラム、クライアントプログラムの3つが必要です。
設定ファイル
>redis_read.proto
こちらと同じ
[Python の gRPC で Redis のデータを読む (Read)](https://qiita.com/ekzemplaro/items/3216564b385ddba8457e)サーバープログラム
“`js:redis_read_server.js
#! /usr/bin/node
// —————————————————————
// redis_read_server.js
//
// Feb/08/2020
// —————————————————————
var PROTO_PATH = ‘redis_read.proto’var grpc = require(‘grpc’)
var protoLoader = require(‘@grpc
Node.js の gRPC で Redis のデータを作成 (Create)
設定ファイル、サーバープログラム、クライアントプログラムの3つが必要です。
設定ファイル
>redis_create.proto
こちらと同じ
[Python の gRPC で Redis のデータを作成 (Create)](https://qiita.com/ekzemplaro/items/f6d7f5e310d45e0bc1d6)サーバープログラム
“`js:redis_create_server.js
#! /usr/bin/node
// —————————————————————
// redis_create_server.js
//
// Feb/09/2020
// —————————————————————
var PROTO_PATH = ‘redis_create.proto’var grpc = require(‘grpc’)
var protoLoader = requ
Electronで作成しているアプリケーションでfirebaseモジュールを使おうとした時に発生するエラーの解決[Failed to load gRPC binary module because it was not installed for the current system]
`% npm i firebase`
を実行して、プログラム内に“`javascript
const firebase = require(‘firebase’);
“`
を記述し、`% electron .`でアプリを起動した際に“`
Uncaught Error: Failed to load gRPC binary module because it was not installed for the current system
“`
とgrpcモジュールに関するエラーが表示された。`% npm i grpc`
を実行したが、今度はgrpcモジュール内に`node_modules/grpc/src/node/extension_binary/electron-v6.0-darwin-x64-unknown/grpc_node.node`というファイルが無いぞとエラーで怒られる。
さらに`node-v72-darwin-x64-unknown/grpc_node.node`ってファイルならあったけどね!`npm rebuild`すると治るかも!と書かれてい
npmコマンド備忘録
#確認
npm -–version
npm -v
npm version
npm help
npm root
npm bin
npm show パッケージ名
##パッケージ検索
npm search パッケージ名
##リリースされたパッケージのバージョン
npm info パッケージ名 versions
##直接インストールしたパッケージ
npm list –depth=0
##ローカルインストール済みのパッケージのバージョン
npm list (–depth=0)
##グローバルインストール済みのパッケージのバージョン
npm list –depth=0) -g
##未更新のパッケージを確認
npm outdated
##package.jsonに記載されているパッケージのバージョンに更新
npm update
#初期化
npm init
#復元
npm install
#インストール
##グローバル
npm install –g パッケージ名
##ローカル
npm install パッケージ名
##package.json記述
###package.json記述
npm in
npmモジュールをインポートしてRollupでビルドしたときに○○ is not definedが出たときの対処
[svelte](https://svelte.dev/)を使ってちょっとしたWebアプリを作っているときにハマったのでメモ。
# 環境
– macOS Catalina
– Node v12.15.0
– npm v6.13.4
– rollup.js v1.20.0
– Svelte v3.0.0# 事象
svelteではクイックスタート用のテンプレートが用意されており、その中でモジュールバンドラとして[Rollup](https://rollupjs.org/)を利用しています([参考](https://github.com/sveltejs/template))。
このテンプレートを元に開発を進めていたところ、特定のnpmモジュールをインポートして動かした際に下記のエラーに遭遇しました。“`
Uncaught ReferenceError: stream is not defined
“``stream`というモジュールは自分が書いたプログラムの中では使っていません。
# 問題点
インポートしたnpmモジュールが内部でNodeのビルトインモジュールを利
Vueはどこへ消えた?
この物語は、[Vue CLI](https://cli.vuejs.org/)に興味を持ち、[Yarn](https://classic.yarnpkg.com/ja/)を使ってインストールしてみたものの、パスを見失ってしまった哀れな開発者の奮闘の記録です。
## 第1話 WindowsにYarnでVue CLIをインストールする
### 事件編
まずはWindowsに[Node.js](https://nodejs.org/ja/)とYarnをインストールします。使うのは、Windows用のパッケージマネージャ[Chocolatey](https://chocolatey.org/)。
“`
choco install nodejs
choco install yarn
“`で、[Vue CLI](https://cli.vuejs.org/guide/installation.html)の記述の通り、YarnでVue CLIをインストール。
“`
yarn global add @vue/cli
“`ちゃんとインストールできたかか確認すると……
“`
Macでnodeのバージョンを切り替える〜少しめんどい〜
nodeのバージョンを切り替えるための処理です!
homebrewがインストールされている前提で話をすすめます。homebrewがインストールされてない方はインストールして下さい。## nodebrewがインストールされているか確認
“`ruby
$ nodebrew -v
“`“`ruby
$ node -v
“`
でnodeのバージョンも確認できる## nodebrewをインストール(インストール済みであれば不要)
“`ruby
$ brew install nodebrew
“`“`ruby
$ nodebrew -v
“`
でバージョン確認## nodebrewでインストール可能なnodeのバージョンを確認
“`
$ nodebrew ls-remote
“`## ローカルの状況確認(nodebrewを通さずにインストールされているnodeがあれば一旦、アンインストールが必要)
“`ruby
$ brew ls
“`
→nodeが入っていれば一度アンイストールしなければいけない## 今まで使っていたnodeをアン
【解決】nuxtでyarnをすると「gyp: No Xcode or CLT version detected!」エラーが発生
# 環境
* macOS Catalina 10.15.3 (zsh)
* node.js v10.15.2
* yarn 1.21.1
* vue/cli 4.1.1# 事象
nuxt + typescript + vuetify環境を作成するために、以下のテンプレートを使用しました。
https://github.com/nuxt-community/typescript-templateそこでyarnコマンドを実行すると以下のエラーが発生し正常に起動できませんでした。
“`
gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/Users/dmorita/.nodebrew/node/v10.15.2/lib/node_modules/npm/node_modules/node-gyp/lib/co
【AWS】IAM-APIGetway-Lambda-DynamoDB-S3でシンプルなアプリケーション制作
# はじめに
サーバーレス勉強する際に、いろいろ試したメモ、
つまずいた点や、解決法など、主に自分用のメモになります。
他の方の参考にもなれば嬉しいです。# やること
– DynamoDBでテーブル作成
– IAMでDynamoDB用のロール作成
– Lambda上でDynamoDBに値を挿入
– Lambda上でDynamoDBから値を取得
– API Gatewayの設定
– S3にウェブアプリケーションをアップし、公開する
– 公開されたアプリケーションでDynamoDBを操作する# DynamoDBでテーブル作成
`テーブルの作成` をクリックしてください。
![UNADJUSTEDNONRAW_thumb_42.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320164/e8b36328-a977-b97b-9a40-85a61a69fe36.jpeg)
`テーブル名`と`プライマリキー`を入力します、`プライマリキー`のタイプは`数値`を選んでください。
![2020-02-07
Node.jsでGoogle Slidesの新規スライド作成
Google Slides APIをNode.jsから触ってみてます。
* [Node.jsでGoogle Slides APIを触ってみる](https://qiita.com/n0bisuke/items/8a343ca4d8fe2f1bac55)
* [Node.jsでGoogle Slides内のテキストを取得してみる](https://qiita.com/n0bisuke/items/325fbe56a48e7d83e8dc)の記事の続きです。
## Google Slideのcreateを試す
スライドの新規作成が出来そうな雰囲気です。
[presentations.createのドキュメント](https://developers.google.com/slides/reference/rest/v1/presentations/create)を覗くとスライド作成できそうな雰囲気がありました。
## 準備
[Node.jsでGoogle Slides APIを触ってみる](https://qiita.com/n0bisuke/items/8a343ca4