- 1. Nowでプロキシを建ててCORSエラーを爆速解決
- 2. NestJS CLIで初心者でも簡単にNode.js REST APIが作れる!
- 3. GoogleのCloud Text-to-Speechを使ってDiscordの読み上げbotをサクっと作った
- 4. vue-cli-plugin-express でポート番号を指定してサーバーを起動する
- 5. 【NestJS】ヘルスチェック
- 6. Symbol Testnet node 構築備忘録
- 7. Node.js + Express サーバから、Docker(+Docker-Compose) + Redis サーバーにデータを送る・削除する
- 8. 【個人メモ】Node.js LINEBOT雛形
- 9. expo-cliというかnpmでconfigure errorが出たときの対応
- 10. Node.js + Express + express-session でセッション変数を使ってみる
- 11. nodeの便利なsqlビルダー、squelの使い方まとめ
- 12. できるだけasync/awaitを使わないほうがよくて、promsie/thenをつかったほうがいい
- 13. Windowsでgulpの環境構築。yarn編
- 14. Nodejs(TypeScript)とcacとinquirer.jsでサクッとCLIを作成する
- 15. Knexあれこれ(雑多メモ)
- 16. Node12系 AWS LambdaでHTMLをPDFに変換しようとしたらいろいろハマった
- 17. Vue.js勉強会に参加してみた
- 18. nodebrewからnodenv with anyenvに乗り換える
- 19. 【動画付き】 draw.io 使い方まとめ 〜エンジニアでなくても使えるTips集〜
- 20. bullで管理するNodeJSの分散job
Nowでプロキシを建ててCORSエラーを爆速解決
# 前置き
`nuxt generate`で作った静的サイトをGitHub Pagesにホスティングし,自分のはてなブックマークのRSSをAxiosでGETして表示させようとしていました.
何も考えずにブラウザで開くとこんなエラーが出てうまくいきません.
“`
Access to XMLHttpRequest at ‘http://api.example.com’ from origin ‘http://localhost.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
“`いわゆる,[オリジン間リソース共有(CORS)](https://developer.mozilla.org/ja/docs/Web/HTTP/CORS)における同一オリジンポリシー違反です.このエラーはブラウザにおいて,現在アクセスしてるサイトと異なるオリジンにあるリソースに対してリクエストを行うときに起きます.
今
NestJS CLIで初心者でも簡単にNode.js REST APIが作れる!
Node.jsなんてほとんど使ったことがないのに、頑張って[NestJS](https://nestjs.com/)でCLIを使ってREST APIを作りました。
あまりドキュメントなかったことに加えて私のスキル不足で半日ほどかかってしまいましたが慣れれば30分もかからないです。# 環境
Ubuntu18.04.01 LTSで動かしました。
NEST CLIの`nest info`でバージョン情報を見ます。“`bash
$ nest info_ _ _ ___ _____ _____ _ _____
| \ | | | | |_ |/ ___|/ __ \| | |_ _|
| \| | ___ ___ | |_ | |\ `–. | / \/| | | |
| . ` | / _ \/ __|| __| | | `–. \| | | | | |
| |\ || __/\__ \| |_ /\__/ //\__/ /| \__/
GoogleのCloud Text-to-Speechを使ってDiscordの読み上げbotをサクっと作った
## Discordのメッセージ読み上げbot
Discordのボイスチャットで、特定のチャンネル内のメッセージを自動で読み上げてくれるbotを作りました。
弊ディスコで導入されている読み上げbot pic.twitter.com/VvdzYlmqEz
— 古都こと (@kfurumiya) February 12, 2020
Discordの読み上げbotとしては[喋太郎](https://www.d
vue-cli-plugin-express でポート番号を指定してサーバーを起動する
vue-cli 3.x プラグインの [vue-cli-plugin-express](https://www.npmjs.com/package/vue-cli-plugin-express) にて、ポート番号を指定してサーバーを起動する際に詰まったので備忘録として。
この記事は vue のプロジェクトに `vue add express` でプラグインを追加した状態から進めていきます。
## 解決方法
`package.json` の `”scripts”` 内にある `”express”` または `”express:run”` の値の末尾に `–port [任意のポート番号]` を付け加えることで、ポート番号を指定してのサーバー起動に成功しました。
“`package.json
“scripts”: {
“serve”: “vue-cli-service serve”,
“build”: “vue-cli-service build”,
“lint”: “vue-cli-service lint”,
“express”: “vue
【NestJS】ヘルスチェック
# やりたいこと
NestJS x TypeORM の環境で、DBまで一気通貫したヘルスチェック用URLを作りたい。
[terminus](https://github.com/godaddy/terminus)というNodeJS用のパッケージで、NestJS用のものがあるので、それを使います。# 環境
– [NestJS 6.11.3](https://nestjs.com/)
– [TypeORM 6.2.0](https://github.com/typeorm/typeorm)
– [terminus 4.3.1](https://github.com/godaddy/terminus)
– [@nestjs/terminus 6.5.6](https://github.com/nestjs/terminus)# インストール
“`
yarn add @nestjs/terminus @godaddy/terminus –no-optional// or
npm install –save @nestjs/terminus @godaddy/termi
Symbol Testnet node 構築備忘録
これは
https://billing.time4vps.com
で
借りたサーバーでテストネットノードを構築した際の 備忘録である
この構築にあたっては
mikun氏@mikunNEM
の協力無くしては
成し得ませんでした 今一度 感謝の意を表します
セキュリティー編———————————————-
ここでは 例として
usernameを ”pasomi”
sshdportを ”20023″
として 作業を進めますrootでログイン
新しいuser作成
adduser pasomi(任意の名前)新しいuserにsudo権限付与
gpasswd -a pasomi sudosshポート変更とrootログイン禁止
vim /etc/ssh/sshd_config“i”で編集を開始
接続Poetの変更
“#Port 22″を”Port 20023″(任意の数字)に変更rootログインを禁止
“PermitRootLogin yes”を”PermitRootLogin no
Node.js + Express サーバから、Docker(+Docker-Compose) + Redis サーバーにデータを送る・削除する
# Node.js サーバーから、Docker サーバにデータを送る
– Ubuntuサーバー環境は2つ使ってます
– マシンA
– Node.js + Express + express-session + connect-redis + Redis
– マシンB
– Docker + Docker-Compose + RedisマシンA から マシンB を参照してデータを表示したかったので、こんな構成になってます。
色々サイト見てたけど、実際にやってみないとコレわかんねーわって思った。## マシンAの下準備
### 色々インストールする
Ubuntu と Node.js は既に導入済を想定#### 必要なものをインストールする
“`bash
$ mkdir exp_redis_test
$ cd exp_redis_test
$ npm install –save express \
express-session \
connect-redi
【個人メモ】Node.js LINEBOT雛形
## プロジェクト作成とハローワールド
“`console
$ mkdir linebot
$ cd linebot
$ npm init -y
“`
“`console
$ npm i @line/bot-sdk express
“`
“`console
$ npm install dotenv –save
“`“`console
$ touch index.js $$ .env
““
“`console
$ code .
“`“`index.js
‘use strict’;const express = require(‘express’);
const line = require(‘@line/bot-sdk’);
const PORT = process.env.PORT || 3000;
const dotenv = require(‘dotenv’)
dotenv.config()const config = {
channelAccessToken: process.env.CHANNEL_ACCESS_TOKEN
expo-cliというかnpmでconfigure errorが出たときの対応
いつも使ってるexpo-cliを利用しようとしたら、下記のようなエラーに遭遇した。
“`bash
gyp WARN EACCES current user (“nobody”) does not have permission to access the dev dir “/Users/xxxxxx/Library/Caches/node-gyp/12.3.1”
gyp WARN EACCES attempting to reinstall using temporary dev dir “/Users/xxxxxx/.anyenv/envs/nodenv/versions/12.3.1/lib/node_modules/expo-cli/node_modules/chokidar/node_modules/fsevents/.node-gyp”
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! confi
Node.js + Express + express-session でセッション変数を使ってみる
# Express + express-session でセッション変数を試す
## 事前準備として、フォルダ作ったりパッケージインストールしたりする
“`bash
mkdir exps_test
cd exps_test
npm install –save express \
express-session \
body-parser \
ejs
“`## http で確認したいので、 index.ejs を作っておく
index.ejs は view として作るので、views フォルダを作っておく
### views フォルダ内に index.ejs を作る“`bash
mkdir views
cd views
nano index.ejs
“`### index.ejs の内容はコレ
“`html:index.ejs
nodeの便利なsqlビルダー、squelの使い方まとめ
##環境
node:v8.11.3##squelとは
メソッドチェーンやって、sqlを組み立てられる便利なnodeモジュール。
sqlを直書きしていると、他の人が見て分かりにくいものになってしまうので、sqlビルダーを使います。僕、フレームワークとか使う前までは直書きしていて、
当時は、文字列連結でandを作っていたので何回もやり直した記憶がある。。。larabelみたいな便利なフレームワークにはクエリビルダとかあったりするけど、今回はnodeなので、nodeのモジュールの力を借りる。
## 準備
●まず、インストール。
npmから、squelをインストールするだけ。
これは動作に必要なモジュールなので、–saveつける。●使い方
以下に書いたが、メソッドチェーンでfromやintoなどを直感的に指定できる。## selectを使った例
where()の中に、「squel.expr().and().and()」のように、拡張というか、追加で条件が書ける。
and()がいけるということは、もちろんor()もいける。複数の条件の中で一部の条件に対して括弧
できるだけasync/awaitを使わないほうがよくて、promsie/thenをつかったほうがいい
##環境
node:v8.11.3##非同期処理について
nodeを使ってapi作ってるときに、routeからサービスに行って次にdaoに行って~みたいな流れの中で、比較的少し時間がかかるDB処理や物理ファイル関連の処理やADサーバの処理とかで順番に処理をさせるために関数を非同期にしてawait使っていたんだけど、
それだと全ての関数にasyncつけなきゃいけなかったり、awaitつける必要が出てくるので、いろいろ面倒になってくる。当然、daoの部分が非同期関数なら、それを呼び出すサービスの関数の中でawaitをつける必要があり、awaitを使う関数もまた非同期にしなきゃいけなくて、またその関数を呼び出す関数も非同期にしなきゃいけなくなってしまうってことになる。
つまり、コントローラー、サービス、リポジトリ全て非同期になってしまう。awaitつけて呼び出そうとしたら、「ここ非同期じゃないやんけ。。。」って怒られてasyncのつけ忘れを直す機会がしばしばあるのが面倒だけど、個人的にはそんな嫌いじゃない。でもどいつもこいつも非同期になるのはなんか気持ち悪いですねぇ。。。(至言)
Windowsでgulpの環境構築。yarn編
#yarnでgulpの環境構築
gulpの環構築の時にサラッと出来るように自分用に投稿。
完璧に初心者なのであしからず※ちなみにyarnもgulpもnodeもインストール済みとして書きます。
##環境
・yarn
1.21.1
・gulp
CLI version: 2.2.0
Local version: 4.0.2 `
・node(楽だからnodistで管理したほうがいいかも)
v11.13.0##手順
test(任意)フォルダの中に移動します“`
C:\Users\(ユーザー名) > CD test
“`“`
C:\Users\(ユーザー名)\test >
“`
ちなみにtestフォルダの中は下記になります“`
test─┬─css
├─scss
│ └─main.scss
└─index.html
“`
package.jsonを生成しないとダメなので下記を実行“`
C:\Users\(ユーザー名)\test > yarn init
“`
実行すると色々聞かれるけどエンター連打。
そうすると
Nodejs(TypeScript)とcacとinquirer.jsでサクッとCLIを作成する
# はじめに
NodejsでCLIツールを作成するときに良さそうなパッケージを見つけて、実際に使ってみたら良かったので紹介していきます。
## 使ったパッケージ
### cac
シンプルでパワフルなコマンドラインインターフェイスを作るためのフレームワーク
[https://www.npmjs.com/package/cac](https://www.npmjs.com/package/cac)
### inquirer.js
対話型のインターフェースを組み込むのに便利
[https://www.npmjs.com/package/inquirer](https://www.npmjs.com/package/inquirer)
## インストール
“`terminal
$ npm i cac inquirer
$ npm i –save-dev @types/inquirer
“`## サンプル
`cac` を使ってCLIの骨組みを書いていきます。
下記の例では `cli hello hoge` みたいなコマンドを入力されたときに処理が実行されるようにし
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