- 1. ApacheでJavaアプリとNodeアプリを動かす
- 2. Firebaseでサブコレクションまで再帰的に削除する上での作業備忘録
- 3. Node.jsのnpmモジュールを使ってjsonファイルをminify・整形する手順
- 4. 【Heroku】デプロイしたときにおこるApplication error(code=H10)の対処法
- 5. playwright で E2E テスト!
- 6. dotenv使うときに便利!VSCodeで全部大文字の定数名とかのメンドーなやつ解決する拡張機能
- 7. 【10分でできる】SkyWayを使ってビデオチャットアプリを作成してHerokuでデプロイする方法
- 8. Node.jsについて / JavaScriptの基本(メモ)
- 9. プログラミング歴半年の東大生がとりあえずECサイト作れるようになるまでに勉強したこと
- 10. Node.js インストール時の「Failed to create the file」
- 11. Node.jsのHTTPリクエストライブラリGotの人気が上がってきてる
- 12. 世の中は本当にマイナス感情で溢れているのか?を検証してみた
- 13. 【M1ソフトウェア導入】Homebrew-node.js-npm
- 14. 【Node.js】パスを確認する方法(備忘録)
- 15. Vue CLIをインストール後vue: command not foundになる
- 16. 【Node.js Express 4.x で Routing Middleware Template(pug) をつかう方法】
- 17. 【AWS】AWSのSESとnodemailerを使って、独自ドメインからメールを送信してみた
- 18. ある時刻で関数を実行したい?それFirebase Functionsでやっちゃおうよ
- 19. GCP Cloud Build で `FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed – JavaScript heap out of memory`
- 20. Node.js メインスレッドで重い処理を行う
ApacheでJavaアプリとNodeアプリを動かす
# はじめに
もともとApatch + TomcatでJavaアプリケーションを稼働しているサーバーがあり、
そこにReact + Node + Typescriptで作ったアプリケーションを稼働させたいという要望があり(私の要望)それを実現するためにやったことを書いていこうと思います。参考にしたサイトは[こちら](https://ja.stackoverflow.com/questions/38818/apache-%E3%81%A8-node-js-%E3%81%AE%E9%80%A3%E6%90%BA%E3%81%A7url%E3%83%91%E3%82%B9%E3%82%92%E4%BB%98%E5%8A%A0%E3%81%97%E3%81%9F%E3%81%84 “Apache と node.js の連携でURLパスを付加したい”)
#前提条件
– Javaのアプリケーションは稼働済み
– Javaアプリケーションは`xxx.xxx.xxx`でアクセス可(ルート)
– Nodeアプリケーションは`xxx.xxx.xxx/node/`でアクセス可にする
– Nodeアプリ
Firebaseでサブコレクションまで再帰的に削除する上での作業備忘録
作業備忘録なので、自分がわかるようにしか書きません。申し訳ありませんが、参考にならないと思います。
FirebaseのFirestoreにおいて、ドキュメントを削除しても、ドキュメント配下のサブコレクションは削除されない問題がある。
公式では、FirebaseのFunctionsサービスを用いて、サーバサイドに削除関数を配置してクライアント側から呼び出すように設定することを推奨している。Functionsのサンプルコードは以下になる。
https://github.com/firebase/snippets-node/blob/master/firestore/solution-deletes/functions/index.jsFunctionsを使えるようになるまでにもろもろの設定があるが(設定手順は紹介しない)、デフォルトのままだと上記のコードをデプロイしてもエラーが起きる。
参考までにデプロイ時のコードを以下に載せる。
“`sh
sudo firebase deploy –only functions
“`エラー内容は以下のようなものになる。
“`
Node.jsのnpmモジュールを使ってjsonファイルをminify・整形する手順
#はじめに
Windows環境で、Node.jsのnpmモジュールを使って以下を行う手順をまとめます。
– JSONファイルの軽量化(minify):改行やスペースの削除
– JSONファイルの整形:改行やインデントにより見やすくする#使用モジュール
– [jsonminify](https://www.npmjs.com/package/jsonminify) → JSONファイルの軽量化モジュール
– [format-jsonfile](https://www.npmjs.com/package/format-jsonfile) → JSONファイルの整形出力モジュール#準備:モジュールのインストール
1. Node.jsを取得しインストールする。→ https://nodejs.org/ja/
2. Node.js command promptを起動する。
3. 以下のコマンドを実行する。(2行目のプロキシ設定は必要な場合のみ実行)
“`
$ npm -g config set registry http://registry.npmjs.org/
$ n
【Heroku】デプロイしたときにおこるApplication error(code=H10)の対処法
#プログラミング勉強日記
2021年3月20日
ローカルでは動くのに、HerokuでデプロイするとApplication errorになってしまったので、その対処法を紹介する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/642821/c41c733c-dcef-6813-daa2-b9887b320362.png)
#エラー内容
まず書かれているように、`heroku logs –tail`でログを確認した。“`
2021-03-19T06:17:26.458574+00:00 heroku[router]: at=error code=H10 desc=”App crashed” method=GET path=”/favicon.ico” host=videochat-sample.herokuapp.com request_id=48b111ba-aaf9-49c2-b454-ffb81ccb1fcb fwd=”14.14.208.82″ dyno= connec
playwright で E2E テスト!
![playwright.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/659561/02b540b8-ccd6-5755-5d88-057da75d64a3.png)
# はじめに
みなさん、Playwright をご存知ですか?
これまで、Node.js での E2E テストといえば、puppeteer、TestCafe を使っていたという方も少なくないのではないでしょうか?
Playwright は、そのうち、puppeteer と同じような記述も多く、非常に分かりやすいかと思います。
また、Microsoft によって開発、運用されているため、今後サポートされなくなるというリスクも
ある程度回避できるかと思います。2020/12/26 時点では、バージョン 1.7.0 なので、その時点での情報になります。
# サポート環境
2020/12/26 時点でサポートしているのは以下になります。
– Node.js 10.17 以上
– Windows: Windows 及び WSL
dotenv使うときに便利!VSCodeで全部大文字の定数名とかのメンドーなやつ解決する拡張機能
## これです
[change-case – Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=zhengxiaoyao0716.intelligence-change-case)
Qiitaで記事書いている人もいました
https://qiita.com/Anders/items/8fe6c89c9ac969cc4626
—以下、日記です…—
## .envファイルを作って、キーを…
Twitter APIを久々に使おうと思った時
[twitter – npm](https://www.npmjs.com/package/twitter) ここから
“`js
var Twitter = require(‘twitter’);var client = new Twitter({
consumer_key: ”,
consumer_secret: ”,
access_token_key: ”,
access_token_secr
【10分でできる】SkyWayを使ってビデオチャットアプリを作成してHerokuでデプロイする方法
#プログラミング勉強日記
2021年3月19日
SkyWayでビデオチャットアプリを作る方法はいくつかのサイトに載っていたが、Herokuでデプロイするのが大変だったので、記事に残しておく。#開発環境と前提条件
– Windows10
– Node.jsが入ってる
– npmコマンドが使える
– Herokuのアカウント登録がある#ビデオチャットアプリを作る
##1. SkyWayの登録・ログインする
[こちら](https://webrtc.ecl.ntt.com/)から無料で始めるをクリックして、会員登録をする。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/642821/2de0703e-814f-0479-fe1f-0501fce9505d.png)
##2. SkyWayでアプリケーションを作成する
アプリケーション説明文に`videochat-sample`, 利用可能ドメイン名に`localhost`と`videochat-sample.herokuap
Node.jsについて / JavaScriptの基本(メモ)
##概要
Node.jsの特徴や書き方
JavaScriptの基本の文法を忘れないために記述していきます。##環境
![macos](https://badgen.net/badge/使用機材/MacBook Pro (13-inch, M1 ,2020)/grey?icon=apple&scale=1.5&labelColor=grey)
![macos](https://badgen.net/badge/メモリ/16GB/green?icon=apple&scale=1.5&labelColor=green)
![macos](https://badgen.net/badge/macOS/Big Sur (version 11.2.3)/cyan?icon=apple&scale=1.5&labelColor=cyan)その他 各バージョン
| | version |
|:-|:-|
| Homebrew | 3.0.5 |
| Nodebrew | v8.9.4 |
| Node.js | v14.16.0 |
| npm | 6.14.11 |##Node.
プログラミング歴半年の東大生がとりあえずECサイト作れるようになるまでに勉強したこと
ここ最近、React/Node/Express/MongoDB/FirebaseでECサイトが作れるぐらいには成長したので、何してきたかここに備忘録書いときます。
完全にただの日記です。悪しからず。
## ECサイト作れるようになるまでの道のり・振り返り
### ステップ0:プログラミング言語に触れる
たまたま取った統計データ解析の授業でR言語を使って解析してました。
振り返ると、if文, for文、型・モジュールのインポートなんてのはここで初めて身につけました。このくらいの時期に基本情報技術者取った気がします。
### ステップ1:フロントエンドに入門
– HTML・CSS
ウェブサイト作成チュートリアル系の本を3冊やりました。前から順にまねしていけば、それっぽいウェブサイトができるので成果がわかりやすいし、知識も身につくのでけっこう楽しいです。– JavaScript
– 競プロ。Node.jsでちょっとだけ、ほんのちょっとだけやってみました。3週間ぐらいでやめちゃいましたが、後々役に立ちました。
– 本。今度は体系的に知りたくなったので、ハン
Node.js インストール時の「Failed to create the file」
新しいMacでNode.jsをインストールしようとして少しだけ詰まったので備忘録です。
####環境
– MacOS Big Sur ver 11.2.2
– Homebrew ver 3.0.7
– nodebrew はインストール済み“`
nodebrew ls-remote
“`で、以下のようにインストールしたいNode.jsのバージョンを確認します。
“`
v0.0.1 v0.0.2 v0.0.3 v0.0.4 v0.0.5 v0.0.6v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7
v0.1.8 v0.1.9 v0.1.10 v0.1.11 v0.1.12 v0.1.13 v0.1.14 v0.1.15~ 略 ~
v12.16.2 v12.16.3 v12.17.0 v12.18.0 v12.18.1 v12.18.2 v12.18.3 v12.18.4
v12.1
Node.jsのHTTPリクエストライブラリGotの人気が上がってきてる
2020/2にNode.jsのrequestモジュールがDeprecated(非推奨)になって一年が経ちました。
半年前に何に乗り換えようかなと調べて、これを書きました。
https://qiita.com/hide2018/items/0507e488d91e28592ca4
当時はnode-fetchに優位性があり、僕もこれを使っています。しかし久しぶりに調べてみると何とGotの人気が徐々に上がっており、node-fetchを抜きました。
ダウンロード数の推移がこちらです。
https://www.npmtrends.com/node-fetch-vs-got-vs-request
以前から右肩上がりで去年の12月に抜きました。
まだ上昇しています。
(そして未だにrequestを使ってる人が多い…非推奨なのに)総合的な評価においてもGotの方が点数が高いです。
https://npmcompare.com/compare/got,node-fetch半年前はgotは統計データ上は特に優位性のないライブラリでした。
(gotのgithubの[比較表](https://g
世の中は本当にマイナス感情で溢れているのか?を検証してみた
## はじめに
「コロナ禍」と言われる言葉が生まれてから、およそ一年ほどは経ちましたね。ここ一年間ネガティブなニュースを多く耳にしたのは僕だけでしょうか?「〇〇で感染者数が過去最多」とか「コロナ禍で深刻化する〇〇」とか、不安な気持ちになるようなニュースが毎日のようにあったような気がします。実際はどうなんでしょうね。
今回は、「実際の世の中のニュースはマイナスで溢れているのか?」そんな疑問から直近1週間の景況を可視化してみようと思います。
### 前提
Node.js(Express)で実装
## 事前調査
### 使用API
– News API
– Natural Language API### **[News API](https://newsapi.org/)**
– Top headlines:最新のヘッドライン
– Everything:全ての記事
– Source :Top headlines が利用できるニュースパブリッシャーのサブセットを返すNews API には上の三つのエンドポイントが用意されています。このうち、`Everything` が
【M1ソフトウェア導入】Homebrew-node.js-npm
#早速
###●homebrew
M1 Macでのhomebrewは 公式のドキュメント で /opt/homebrew にインストールすることが推奨されている為、以下のような工程でインストールを行う。
https://docs.brew.sh/Installation#untar-anywhere
“`bash:install.homebrew
sudo mkdir /opt/homebrew
sudo chown -R $(whoami) /opt/homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz –strip 1 -C /opt/homebrew
//パスを通す
export PATH=”/opt/homebrew/bin:$PATH”
//brew installの確認
% brew doctor
“`###●node.js
https://nodejs.org/ja/download/package-manager/#macos“`bash:instal
【Node.js】パスを確認する方法(備忘録)
#プログラミング勉強日記
2021年3月17日
Node.jsの環境変数であるNODE_PATHの確認方法をまとめる。今回はすべてWindowsで行った。#npmのPATHを確認する方法
“`:コマンドプロンプト
$ npm bin -g
“`コマンドを実行すると、ディレクトリがNode.jsをインストールしたときに自動的に設定される。そのパスが表示される。
#node_modulesのPATHを確認する方法
Nodeのサーバーを立ち上げてから、nodeコマンドで下記を実行する。“`
> global.module.paths
“`#npmのPATHを通す方法
“`
set NODE_PATH=C:\Users\フォルダ…
“`#参考文献
[【Express】環境変数とは?PATHを通すとは?けっきょく南極ローカルインストール!(Herokuコマンドでローカル起動)](https://www.i-ryo.com/entry/2020/09/26/183640)
[Node.jsのPath(パス)を確認する方法【初心者向け】](https:/
Vue CLIをインストール後vue: command not foundになる
# 環境
* macOS Catalina 10.15.7
* Node.js 14.16.0
* npm 7.6.3# 現象
1.Vue CLIをグローバルにインストール“`
$ yarn global add @vue/cli
“`2.インストール完了後、バージョン確認のコマンドを打つと「command not found」と言われる
“`
$ vue –version
nodenv: vue: command not foundThe `vue’ command exists in these Node versions:
10.15.1
10.16.0
“`# 解決
以下のコマンドでPATH変数を更新“`
export PATH=$PATH:/Users/denis/.npm-global/bin
“`返ってきた…!
“`
$ vue –version
@vue/cli 4.5.11
“`# 参考記事
[node.js — Vueコマンドが見つかりません](https://www.it-swarm.jp.net/
【Node.js Express 4.x で Routing Middleware Template(pug) をつかう方法】
Expressでは簡単にルーティングができるが、色々方法があって忘れる。
ということでここでいったんまとめていくExpressのversionは4系です
#####同じパスに対して複数のハンドラがあるとき
“`js:app.js
const express = require(‘express’)
const app = express()app.route(‘app/user’)
.get(req, res) => {}
.post(req, res) => {}
“`#####特定のパス以下のルーティングをまとめるとき
“`js:routes/user.js
const express = require(‘express’)
const router = express.Router()router.get(‘/’, (req, res) => {})
router.get(‘/edit’, (req, res) => {})
router.get(‘/delete’, (req, res) => {})
“`“`js:app.js
con
【AWS】AWSのSESとnodemailerを使って、独自ドメインからメールを送信してみた
皆さんこんにちは!
最近AWSの様々な機能に触れるようになったのですが、何と言っても便利!!!
こういう機能無いかなと調べたらほぼ確実にある!
そんなこんなで今回はAWSのSES(Simple Email Service)を使って、“nodemailer“で独自ドメインからメールを送信して見ようと思います!
#はじめに#
独自ドメインは取得しているていで話を進めていきます。
また、SESでの設定も今回は省きます。
SESでメール送信の設定を行っていないという方は、下記の記事をご覧ください。
・[【AWS】AWS初心者がRoute53+SESを使って、独自ドメインでGmailからメールを送信してみた](https://qiita.com/akki-memo/items/616671ccb009a0202113)
それでは説明を見ていきましょう!
#nodemailerの準備#
まずは、パッケージをインストールします。
“`
npm i nodemailer
“`次に、SESでメールの登録を行った際に、ユーザー名、パスワードの情報をダウンロードしているか
ある時刻で関数を実行したい?それFirebase Functionsでやっちゃおうよ
どうもアッキーです。
ふと、日にちをまたいだ時にユーザーの決済の日にちが過ぎていないかを調べたいなと思っていたら、Firebaseで常備されているらしい。
Node.jsで“cron“と言うパッケージがあるらしいが、Firebaseでも実行できるらしい!
記事を見なくてもFirebaseの公式ドキュメント([関数のスケジュール設定](https://firebase.google.com/docs/functions/schedule-functions?hl=ja))にも書いてあるので是非ご覧ください。
公式ドキュメントにも書いてあるのですが、この公式ドキュメントでは実行の時の時間について詳しく書いておらず、そのためにこの記事を書いていこうかなと思います。
とりあえず、説明していきます!
#時間の設定#
今回は日にちをまたぐときに実行する方法を書いていきます!
“`index.js
const functions = require(‘firebase-functions’)
const admin = require(‘firebase-admin’)co
GCP Cloud Build で `FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed – JavaScript heap out of memory`
ヒープ領域が限界に近くて割り当てに失敗したらしい
## Cloud Build で使われていたマシン
– デフォルトの`n1-standard-1`
– https://cloud.google.com/compute/docs/machine-types/?hl=ja#n1_standard_machine_types
– メモリ 3.75Gb
– この領域をいっぱいに使ってるか? → そうでもなかった
– `node -e ‘console.log(Math.floor(v8.getHeapStatistics().heap_size_limit/1024/1024))’`
– このデフォルトは`1400`MB
– なので、割当メモリを十分に使えていない可能性## 解決策
– `NODE_OPTIONS=–max-old-space-size=xxx`
– `xxx`にメガバイト単位の数字を指定。 筆者は`3072`と指定した
– `–max-old-space-size=xxx`
– https:/
Node.js メインスレッドで重い処理を行う
## はじめに
Node.jsの特徴としてシングルスレッドであることが挙げられます。そのため、CPU負荷の重い処理をさせると、スレッドがブロックされてパフォーマンスが低下するので、そのような処理はNode.jsには不向きとされています。どうしても重い処理をしたいときは、マルチスレッドやマルチプロセスを用いることもできます([参考](https://qiita.com/darai0512/items/568ea7d49d2c522b7c45))が、いずれも重大な欠点があります。### マルチスレッドの問題
Node.jsにおけるマルチスレッドでは、基本的にlibuvが提供するthreadpoolからスレッドを取得して使うことになると思います。しかし、libuvのthreadpoolは最大で128個(既定で4個)のスレッドしか供給できません。さらに、libuvが提供するスレッドは、ファイル操作の非同期処理にも使われます。例えば、ローカルファイルの読み書きを行う場合は勿論、ドメイン名をIPアドレスに変換するresolve処理でも(`/etc/resolv.conf`などを読み込む必要があ