- 1. 2020.11.03~ Node.jsで調べたこと
- 2. Node.jsについて簡単に解説(学習まとめ)
- 3. ERESOLVE unable to resolve dependency treeの解決方法
- 4. [初心者向け] IBM Cloud で無料のKubernetesを活用してアプリ(Node.JS)を公開する
- 5. NodejsのSQLiteでカラム名の一覧を取得する方法
- 6. CloudFunctionsでlinebotを動かすメモ まだ準備までソース書いてない
- 7. webpackを使ってcssとscssをコンパイルする
- 8. Node.jsで実行できるスクリプトをTypescriptで作る【備忘】
- 9. 【Nuxt.js】sass-loaderでModule_build_faildのエラーが出た時の対策
- 10. node.jsでneo4jのOGMを使う④データを操作してみる
- 11. Azure Functions × Node.js × Typescript をローカルの仮想環境上のDockerで動かして VSCodeからデバッグ実行したメモ
- 12. AWS EC2においてポート80番でデプロイしたかった
- 13. node.jsでneo4jのOGMを使う③メソッド一覧
- 14. Node.jsからCloud Storageを利用(入門)
- 15. node-gyp rebuild 中に gyp ERR! stack Error: 403 status code downloading arm64 iojs.libが起きる
- 16. 世界中から のあちゃん・えくくん(猫)と遊ぶ
- 17. Gatsbyで「error Looks like develop for this site is already running, can you visit http://localhost:8000 ? If it is not, try again in five seconds!」での対処
- 18. node.jsでneo4jのOGMを使う①とりあえず動かしてみる
- 19. MacでYarnが実行できるようにする
- 20. node.js+ExpressでAPIに呼び出し制限を実装する
2020.11.03~ Node.jsで調べたこと
Node.js v12.18.0
# 2020.11.03(火)
## 相対パスを絶対パスに変換
`path.resolve()`を使う> The path.resolve() method resolves a sequence of paths or path segments into an absolute path.
> [Path | Node.js v12.19.0 Documentation](https://nodejs.org/docs/latest-v12.x/api/path.html#path_path_resolve_paths)> “`javascript
const path = require(‘path’);
let absolutePath = path.resolve(‘./test.txt’);
// => /Users/…/test.txt (絶対パス)
“`
> [[NodeJS]相対パスを絶対パスに変換する方法 | YongJin Kim’s Blog](https://yongjinkim.com/nodejs%E7%
Node.jsについて簡単に解説(学習まとめ)
##はじめに
今更ながら、今回は「Node.js」について解説していこうと思います。
それでは早速、お付き合いのほど、よろしくお願いいたします。##本文
「Node.js」とは、サーバーサイドでJavaScriptを実行する環境(’エンジン’とでもいうべきもの)で、内部にChromeのJavaScript実行エンジンである「V8」を持ちます。
ApacheやNginx上で動作します。(※Node.js単体でも動作します)(※Node.jsでWebサーバーを作ることもできます)。
「ノンブロックIO」と「イベントループ」という二つの仕組みで大量のアクセスを捌くことができます。したがってリアルタイムで高速に動作します。
「ノンブロックIO」とは、ハードディスク(≒データベース)などへのアクセスでブロック(処理が完了するまでの待機動作)を発生させないということです。したがって、データの取り扱いは非同期に行われます。
「イベントループ」とは、外部からのアクセスをイベントとみなして、そのイベントを順次処理していく(発生順にキューに格納してから、これを順番に取り出して処理していきます)。
ERESOLVE unable to resolve dependency treeの解決方法
### 背景
Dockerのnodeコンテナ内で、create-react-appでReactプロジェクトを作成し、
その後にmaterial-uiをインストールしようとしたときに、発生したエラーでした。※調べてみた感じ、npm installで、インストール元のパッケージのバージョンが最新(latest)で、
インストールするパッケージの最新バージョンが同等(peer)でなかったときに発生するエラーのようでした。## 結論
そのライブラリを**インストールしたい**場合は、npm installのあとに、**–save –legacy-peer-deps**を追加してあげましょう。
もしくは、インストール元のプロジェクトの**ダウングレード**を検討しましょう。。## 経緯
“`bash
# material-uiをインストールしようとしたら。。
npm install @material-ui/core
“`“`bash
# このようなエラーが発生。。
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable t
[初心者向け] IBM Cloud で無料のKubernetesを活用してアプリ(Node.JS)を公開する
# IBM Cloud で無料のKubernetesを活用してアプリ(Node.JS)を公開する
## IBM Cloud のアカウント取得
IBM Cloudのアカウントを所持されてない場合は、こちらの記事を参考にアカウントを作成してください。
所要時間数分で、メールアドレス一つで、どなたでも簡単に登録することができます。
『[「IBM Cloudをはじめました」無料ではじめられるライト・アカウント登録方法](https://qiita.com/ayatokura/items/42d4bc728112c733c80d)』## Kuernetes Serviceの作成
### リソースの作成
IBM Cloudのログイン画面後のダッシュボード画面で、右上のリソース作成を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/658425/f860cbee-d5b9-6147-1d17-2edbbfe49acf.png)### Kuernetes Serviceの選択
リソー
NodejsのSQLiteでカラム名の一覧を取得する方法
https://stackoverflow.com/questions/947215/how-to-get-a-list-of-column-names-on-sqlite3-database
こちらのサイトを参考にしました。データの確認にはDB Browser for SQLiteを使っていたのですが、DB Browser for SQLite上でSQLを実行するときと、Node.js上のSQLiteモジュールを通して実行したときとで実行できるものが違うようです。
## DB Browser for SQLiteを使う場合“`sql
pragma table_info(tablename)
“`
で指定したテーブルのカラム名の一覧が取得できます。
他のSELECTなどのクエリと一緒に使うことはできないようです。## Nodejsで使う場合
“`
db.each(“SELECT name FROM pragma_table_info(‘users’)”, function(err, args) {
console.log(args[‘name’]);
})
CloudFunctionsでlinebotを動かすメモ まだ準備までソース書いてない
#準備
CloudFunctionsでnode.jsを使おうと思うが、インラインエディタだと、npmとか出来なさそう。
つまり、そのままやるなら自力でpackage.jsonを書く必要がある。
⇒そんなめんどくさいことは嫌なので、どこかコンソールがあるところで作業しないと。出来ればCloud上で終わらせたい。あまりPCスペックがよくないのと、どこからでもアクセスできるようにしておきたい。
どこかでソース編集(CloudFunctions)+ライブラリのinstallなど→
ソース管理ツール(GitHub)→
CloudFunctionsへデプロイの流れでいこう。
1.gitHubにリポジトリを作成
2.CloudShell上から git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
3.ソース作成
4.デプロイCloudFunctionsって、サーバレスな仕組みやけど、
httpリクエストを受けたときのアクションの書き方ってどうするんやろか、また次回。#参考サイト
[githubのクローン](http
webpackを使ってcssとscssをコンパイルする
# cssのコンパイル
最終的なファイル構成は以下になる。
“`
webpack-demo
├── dist
│ ├── index.html #はじめに作っておく
│ └── main.js # npx webpack時に作成される
├── package.json # npm init -y で生成
├── package-lock.json # npm i で生成
├── node_modules # npm i で生成
├── src #srcフォルダとファイルははじめに作っておく
│ ├── index.js
│ └── style.css
└── webpack.config.js #はじめに作っておく
“`## 流れ
最初のファイル設定は以下の通り。
“`
webpack-demo
├── dist
│ └── index.html #はじめに作っておく
├── src #srcフォルダと
Node.jsで実行できるスクリプトをTypescriptで作る【備忘】
# Node.jsで実行できるスクリプトをTypescriptで作る【備忘】
`Typescript`はまだまだ初心者ですが備忘録として残しておこうかと思った次第。
## ● 完成系のイメージ
チームメンバーのスキル的に`npm`でインストールは無い方が無難かなと思いまして、
`node`でjsファイルを指定して実行する方針にしました。
なので `bin`ではなく `main`で 出力先の`./dist/index.js`としています。
※ 実際のスキル感次第で変更してもいいかなと思ってます。“`bash:実行時
$ node cli-tool opt1// 実行結果
-> Hello, opt1!
“`## ● 開発環境
### ディレクトリ
“`txt:ディレクトリ構成
cli-tool
├── dist/
│ └── index.js
├── node_modules/
├── src/
│ ├── main.ts
│ └── component.ts # いい感じにファイルを分割する
├── packag
【Nuxt.js】sass-loaderでModule_build_faildのエラーが出た時の対策
# 問題点
Nuxt.js で Sass 記法を使いたいため、`node-sass`と`sass-loader`をインストールしたが、エラーで動かない!
## エラー内容
Module build failed: TypeError:
## 解決方法
以下をプロジェクト内で実行してください。
`npm uninstall –save-dev sass-loader`
`npm install –save-dev sass-loader@7.1.0`### 偉大なる参考記事
[こちら](https://github.com/JeffreyWay/laravel-mix/issues/2206)で議論されていた方法の結論部分だけまとめました。
node.jsでneo4jのOGMを使う④データを操作してみる
#1)準備:テストデータを入れる
適当にテストデータを作ります。
`create (:actor{name:”堺雅人”})-[:ACTS_IN{name:”半沢直樹”}]->(:movie{name:”半沢直樹”})`
`match (a:actor{name:”堺雅人”}) merge (a)-[:ACTS_IN{name:”小見門健介”}]->(:movie{name:”リーガルハイ”})`
`match (m:movie{name:”半沢直樹”}) merge (a:actor{name:”香川照之”})-[:ACTS_IN{name:”大和田常務”}]->(m)`
`match (m:movie{name:”リーガルハイ”}) merge (a:actor{name:”新垣結衣”})-[:ACTS_IN{name:”黛”}]->(m)`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/397300/c502e26a-9794-8296-142a-a19758d8cfc3
Azure Functions × Node.js × Typescript をローカルの仮想環境上のDockerで動かして VSCodeからデバッグ実行したメモ
## 概要
Azureのチュートリアル「[Visual Studio Code から Azure Functions をデプロイする][*1]」を行っていたところ、
関数のローカル実行でエラーとなった。
Nodeのバージョンによるものだったため、関数のローカル実行をDocker上で行うようにした。
デバッグ実行の設定を調べるのに時間がかかったため、備忘録として残す。[この時点のソース](https://github.com/hibohiboo/develop/tree/f2a54792b18b9b309bc917ac27a6ca3fdf6a6c16/tutorial/lesson/ms-function)
## 環境* Windows 10 Home
* chocolatey 0.10.15
* Vagrant 2.2.10
* virtualbox 6.1.16
* Ubuntu 20.04 LTS
* Docker version 19.03.13, build 4484c46d9d
* docker-compose version 1.27.4, build 4052
AWS EC2においてポート80番でデプロイしたかった
# はじめに
Node.jsで作成したアプリケーションを、AWS EC2でデプロイしました。
ポート3000番ではデプロイできたものの、80番でデプロイすることができず色々と調べたので、
調べた内容や、解決方法について記します。# 実行環境
– AWS EC2 (Amazon Linux2 AMI)
– Apache 2.4.46
– Node.js 12.19.0# やりたかったこと
URLのポート番号表記を省略して、短いURLにしたかった。
`http://hogehoge:3000/` → `http://hogehoge`
https://www.google.com:443/ に接続したとき、
自動的にhttps://www.google.com/ にリダイレクトされることは知っていたので、*1
この応用で、3000ではなく80番ポートでデプロイすれば、`http:[パブリックIPv4アドレス]:3000/` → `http:[パブリックIPv4アドレス]`
のようにポート番号の表記が省略され、URLを短くできると考えました。
> *1
ホスト
node.jsでneo4jのOGMを使う③メソッド一覧
#node
|メソッド|引数|戻り値|説明|
|————-|—————|—————|—————|
|id()||int|Node ID|
|identity()||Integer|internal ID as a Neo4j Integer
|properties()||Object|プロパティ取得|
|get(property, or = null) |String:プロパティ名|mixin|指定したプロパティ名の値取得|
|valueToJson(property, value)|||
| model()||model|ノードのモデル取得|
| labels()||Array|ノードのラベル取得
|setEager(key, value)||node|Set an eager value on the fly
|delete(to_depth) ||Depth to delete to (Defaults to 10)|グラフからノードを削除します
|relateTo(node, type, propert
Node.jsからCloud Storageを利用(入門)
# サービスアカウントの作成
[Google Cloud Platform](https://console.cloud.google.com/)にアクセスしてサービスアカウントの作成(API)を行います。
ナビゲーションメニュー > APIとサービス > 認証情報 をクリックし画面に移動します。
そしてサービスアカウントを管理をクリックします。
![GCP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/817075/18512082-f5d6-4f93-faa8-bb2ddaaa26be.png)次の画面ではサービスアカウントを作成をクリックします。
![GCP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/817075/252ccae4-220b-ad61-4b18-5971d51dc04a.png)
サービスアカウントの詳細を各項目入力していきます。|設定項目 |設定内容 |
|—|—|
|サー
node-gyp rebuild 中に gyp ERR! stack Error: 403 status code downloading arm64 iojs.libが起きる
https://github.com/nodejs/node-gyp/issues/1933
にて報告されているが、node-gypのバージョンが5.0.5または、6.0.0のさいに起きるエラーのようである。
対策としては、node-gypのバージョンを5.0.6または6.0.1に上げることである。
## 解決方法
バージョンを上げよう。
“`bash
npm install node-gyp@6.0.1
“`## GitHubActions内でこのエラーが起きた
ただ自分の場合、GitHubActions内で仮想環境を作って、このエラーが起こってしまったため、GithubActions内で参照しているnode-gypのバージョンを変える必要が生じていたのだが、前述したコマンドでは参照バージョンを変更することができなかった。
とりあえず、グローバルにnode-gypを落としてみたものの…
“`bash
npm install -g node-gyp@6.0.1
“`ダメ…!
“`bash
Error output:
gyp WARN instal
世界中から のあちゃん・えくくん(猫)と遊ぶ
### まえがき
「世界中の人に、のあちゃん・えくくん(猫)と遊んでもらいたい」
そんな思いから、世界中のパソコンやスマホを通して、ペットののあちゃん・えくくんとコミュニケーションがとれるものを作ってみました。
本当は猫じゃらしを振り回してもらいたかったのですが、まずはLEDを点灯させるだけの「光をともす」をやってみたいと思います。
↑ のあちゃんとえくくん ↓のあちゃんに光が灯される図
世界中からアクセスできる点については、ESP32を公開Webサーバ
Gatsbyで「error Looks like develop for this site is already running, can you visit http://localhost:8000 ? If it is not, try again in five seconds!」での対処
# 事例
“`gatsby develop“`を実行すると以下が表示された
“`
error Looks like develop for this site is already running, can you visit http://localhost:8000 ? If it is not, try again in five seconds!
“`
http://localhost:8000
を調べても何も表示されないし5秒まっても再び実行しても同じエラー何回か“`gatsby develop“`を実行した際に
“`
Something is already running at port 8000
✔ Would you like to run the app at another port instead? … yes
“`
とか出てたので他のポートで実行されているのかと思い
http://localhost:8001
http://localhost:8002
を確認して見たが何も表示されない# 解決方法
localhostを使用してい
node.jsでneo4jのOGMを使う①とりあえず動かしてみる
node.jsでOGM(オブジェクトグラフマッピング)を使うと簡単にデータにアクセスできます。
#環境変数の設定
①dotenvをインストールします。
“`
npm i –save dotenv
“`
②.envファイルをプロジェクトのディレクトリに作成“`/.env
// .env
NEO4J_PROTOCOL=neo4j
NEO4J_HOST=localhost
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=neo4j
NEO4J_PORT=7687
NEO4J_DATABASE=neo4j
NEO4J_ENCRYPTION=ENCRYPTION_OFF
“`#neodeのインストール
“`
npm install –save neode
“`modesディレクトリを作成してモデルを定義
“`/model/user.js
module.exports = {
id: {
type: ‘uuid’,
primary: true
},
name: ‘string’
}
“`“
MacでYarnが実行できるようにする
2020.10.31時点
# やりたいこと
Macでフロントエンド開発ができるようにYarnを実行できるようにしたい。# 結論
必要最小限のコマンドはこんな感じ。“`
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)”
brew install nodenv
echo ‘eval “$(nodenv init -)”‘ >> ~/.bash_profile
source ~/.bash_profile
nodenv install 14.15.0
nodenv rehash
nodenv global 14.15.0
brew install yarn –ignore-dependencies
“`# やったこと
下記のアプリをインストールしました。
1. homebrew
2. nodenv
3. Node.js
4. Yarn# 説明
導入したものの用途とよく使うコマンドはこんな感じです。## homebrew
node.js+ExpressでAPIに呼び出し制限を実装する
node.js+ExpressでAPI作成するときに回数制限をかけたかったので実装メモ
#redisのインストール
Redisとは永続可能なインメモリデータベースです。
Redis上にアクセス情報を保持してアクセス制限を実施します。yumでインストール
“`
# yum install -y redis
“`バージョン確認
“`
# redis-server –version
Redis server v=3.2.12 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=7897e7d0e13773f
“`redisサーバー起動
“`
# sudo service redis start
“`#express-limiterの利用
回数制限をするミドルウェアのインストール
“`
npm install express-limiter –save
“`“`
var express = require(‘express’)
var app = express()
var client