- 1. [nodejs]mysql2のpool.queryをネストさせたら動かなくなった事象を解消した例
- 2. 世界一わかりやすいかもしれないnpmパッケージ公開方法
- 3. 【UserLAnd】UbuntuでNode.js環境構築
- 4. npm ciと.npmを使ってGitHub Actionsを高速化する
- 5. Voltaのインストール
- 6. expressの基礎をまとめる1
- 7. Docker alpineベースの環境でnode-gypのエラーが出た
- 8. Creating vector tiles from Esri Feature Service using nodejs and tippecanoe
- 9. GitHub Actionsのcronが60日で止まる件対応をしてみる
- 10. nodebrewを使用したNode.jsのバージョン切り替え
- 11. npmでプロジェクトを作成する
- 12. Node.jsの基礎をまとめる1
- 13. 【Node.js入門】いままで避けてきたから特徴だけはおさえておきたい
- 14. node.jsのアプリケーションをAWS ElasticBeanstalkにデプロイしてみる。
- 15. Node.jsのインストールが失敗した原因と解決方法
- 16. node.jsでブラウザーテストをするselenium-webdriverのセットアップ
- 17. Discord.js これだけはするな!もしくは陥りやすい間違い集もしくはTips
- 18. SDKを使わずにNode.jsからAzure IoT HubへMQTT接続する
- 19. ES Lintの導入
- 20. ElasticBeanstalkのUnknown or duplicate parameter: NodeCommandの対処法
[nodejs]mysql2のpool.queryをネストさせたら動かなくなった事象を解消した例
## 何が起きた?
下記のようなロジックを作ったところ、`入ってる`まで通るけど最後のpool.queryに入らずupdateできないことがあった。
“`js:test.js
var mysql = require(‘mysql2’);
const pool = mysql.createPool({
host: ‘127.0.0.1’,
user: ‘root’,
password: ‘password’,
database: ‘test_db’
});// 関数呼び出し
test();// 呼び出し用の関数準備
function test() {
pool.query(“select * from emails”, function (err, factDatas, fields) {
for (const obj of factDatas) {
pool.query(`select * from users where id = ${obj.user_id};`, function (err, user_rows, fields
世界一わかりやすいかもしれないnpmパッケージ公開方法
# npm publishの前にnpm adduserがむずい。
ええ、とにかくnpm adduserもしくはnpm loginの処理がむずいんですね。
# んで肝心のやり方は?
もうなんでもいいから早く教えろあまみやさんと聞こえてきそうなのでやっていきます。
えせエンジニアなので間違ってるかもです。よろしこ。
まずは[npmjs.com](https://www.npmjs.com/)にアクセスしてアカウント名とパスワードを決めます。ここで登録アカウント名を忘れるとのちのnpm adduserで詰むので注意。
– アカウント登録とログインを済ませたら、右上のアカウントマークから”accestokens”選択
– Generare New token選択後トークン名設定の後Select typeをAutomationに設定。
トークンをコピー(一応コピペミスったとき用にページはそのままで。)
– Terminal上で“`
npm adduser –scope=@OWNER –auth-type=legacy –registry=https://registry.
【UserLAnd】UbuntuでNode.js環境構築
# はじめに
家にPCがないのでスマホ(Android)で開発環境を構築しようと考えました。# 動作環境
* Sony Xperia 10 IV
* Android OS 12
* UserLAnd 3.1.4
* Ubuntu 20.04.5 LTS
* Node.js 18.13.0# nvmをインストール
そのままapt installするとNode.jsのバージョンがnvmからインストールします。
“`bash
$ curl -k -LO https://raw.githubusercontent.com/creationix/nvm/master/install.sh
“`
install.shを編集(curlに「-k」オプションを付与)してUserLAndを再起動します。
* 編集前
“`bash
nvm_download() {
if nvm_has “curl”; then
curl –fail –compressed -q “$@”
“`
* 編集後
“`bash
nvm_download() {
if nvm_has “curl
npm ciと.npmを使ってGitHub Actionsを高速化する
# 概要
– Node.jsを使用しているCI/CD環境(今回はGitHub Actions)を高速化させたい
– 高速化のために `npm ci` と `.npm` をCIでキャッシュする手法を用いる# `npm ci` とは
– `npm ci` は `package-lock.json` を参照して依存関係をインストールするコマンド
– 既に `node_modules` が存在する場合は一旦削除してからインストールが走る
– とはいえ `package.json` と `package-lock.json` のバージョン指定が食い違っている場合にはエラーを出してくれる
– e.g. あるパッケージをバージョン `0.9.9` でインストール後に `package.json` のバージョンだけ `1.0.0` に書き換えた場合等
– 通常の `npm install` の場合、 `package.json` と `package-lock.json` の両方を見て、依存関係の解決と `node_modules` へのインストールと、場合によっては `package-
Voltaのインストール
voltaはnodeの管理ツールです。
https://docs.volta.sh/guide/
こちらの記事を読んでvoltaすごいと思ったので自分も入れてみました。
https://zenn.dev/aiueda/articles/7dcecaa05d4f24
# 何が良いの?
1. 迅速なセットアップ
1. projectごとに設定されているnodeやnpmの環境に自動で切り替わる。
2. Rustで作られており高速
2. OSに依存しない
1. MacやWindowsどちらを使っていても同様の環境を構築できる# 手順
公式に沿ってやればすぐできました。
https://docs.volta.sh/guide/getting-started“`bash
# macの場合
$ curl https://get.volta.sh | bash
$ volta install node # ltsが入る
# volta install node@latest# 確認
$ node -v
#> v○○.△△.□□
“`:::note
expressの基礎をまとめる1
node.jsを使用するときによく使うexpressの基礎をまとめる。
expressとはnode.jsのフレームワークである。
最初に、nodeのプロジェクトを開始する。
“`
npm init -y
“`“-y”を加えることでプロジェクト作成時、質問を省略することが出来る。
そして、nodeomnとexpressをインストールする。
“`
npm i express nodemon
“`すると、package.jsonファイルの”dependencies”に書き加わる。
“`
“dependencies”: {
“express”: “^4.18.2”,
“nodemon”: “^2.0.20”
}
“`そして、server.jsを作成してインスタンス化したモジュールを呼び出す。
“`
const express = require(“express”);
const app = express();
“`expressを呼び出して、インスタンス化のような形でappという変数に入れていく。
“`
const PO
Docker alpineベースの環境でnode-gypのエラーが出た
# はじめに
Dockerでnodejsの環境をalpineベースで作成し、
`supabase-js`をインストールしようとしたところ以下エラーが発生したのを修正した時のメモ。# エラー時の状況・原因・解消方法
## 発現時の状況
“`dockerfile:Dockerfile
FROM node:18.13-alpine3.16RUN apk update
WORKDIR /var/www/app
USER node
CMD [“yarn”, “dev”]
“`“`yaml:docker-compose.yml
version: ‘3’services:
app:
build: .
ports:
– “8080:8080”
volumes:
– “./front:/var/www/app”
tty: true
“`“`zsh
$ docker-compose exec app sh
/var/www/app $ yarn add @supabase/supabase-js・
Creating vector tiles from Esri Feature Service using nodejs and tippecanoe
# Introduction
This article is written for my colleague M.L. and G.L.S. This article explains how I made vector tiles from Esri Feature services.Originally, this method was developed in December 2022 and that effort was summrized in this article (in Japanese): https://qiita.com/T-ubu/items/17cb65754a54aa5ffb21
If you have the data in GeoJSON, just use it because it is much easy. This is a work flow for a case that you only have an access to the data as FeatureService.
This is a part of my wo
GitHub Actionsのcronが60日で止まる件対応をしてみる
こちらの記事になるように60日間動きがないとcronが止まってしまう模様です。
https://zenn.dev/hellorusk/articles/fc6d4696f5b269
定期的に定期実行処理が止まってる。。
## 現在時刻をもとにファイル作成してGit Pushしてみる
– 現在時刻取得
– JSONファイル作成
– GitHub Actions側からGit Pushをして定期実行すれば常に動き(commitやpush)がある状態になりそう。
## JavaScriptの処理でJSONファイルを書き出す
現在時間を取得してJSONに書き出す処理です。
時間はday.jsを使用“`js
const fs = require(‘fs’);
const LOGFILE_NAME = `log.json`;//日本時間
const dayjs = require(‘dayjs’);
const utc = require(‘dayjs/plugin/utc’);
const timezone = require(‘dayjs/plugin/timezo
nodebrewを使用したNode.jsのバージョン切り替え
Node.jsを使用していると、バージョンダウンさせたい時ってありますよね。
nodebrewでバージョン管理する場合、以下の方法でバージョンを切り替えることが可能です。以下コマンドで、切り替え可能なバージョンを確認します。
`nodebrew ls-remote`
以下のように切り替え可能なバージョンが表示されます。
~~~
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
v0.1.16 v0.1.17 v0.1.18 v0.1.19 v0.1.20 v0.1.21 v0.1.22 v0.1.23
[…]
io@v3.0.0 io@v3.1.0 io@v3.2.0 io
npmでプロジェクトを作成する
nvmでNode.jsをインストールし、
その後npmでVue.jsプロジェクトを作成した。## 手順
#### 新しいプロジェクトの作成
latestだけでもOK、コマンド実行後にプロジェクト名、使用するテンプレート、言語を選択する。
viteはビルドツール。
“`bash
npm init vite@latest [プロジェクト名] — –template vue
“`#### 作成したプロジェクトフォルダへ移動
今回はfirst-vue-appという名前のプロジェクトを作成したので、そこに移動する。
“`bash
cd first-vue-app
“`#### Vue.jsを動作させるためのパッケージをインストール
“`bash
npm install
“`
自動的に色々と作成してくれる。
#### 開発サーバを起動
“`bash
npm run dev
“`
Node.jsの基礎をまとめる1
node.jsとはJavaScriptでサーバーまで作れるよという設計手法のことである。
JacaScriptやReactというのはクライアントサイドをつくるものである。
そして、非同期処理を得意とするため、リアルタイムの処理を得意とする。処理の速さも優秀である。
プロジェクトのディレクトリを作成したら、以下のコードを入力する。
“`
npm init -y
“`
これを行うとpackage.jsonが作成される。これによって、作成するプロジェクトの依存関係を管理してくれる。そして、モジュールをインストールするやり方を示す。
httpモジュールをインストールするには以下のように入力する。“`
npm install –save-dev http
“`
そうすると、package.jsonのdevDependenciesのところにパッケージが追加されているのが分かる。![Untitled (10).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2971002/82832b38
【Node.js入門】いままで避けてきたから特徴だけはおさえておきたい
Node.jsをこれまでほとんど勉強してきませんでした。
普段触れることもある言語ですが、ないがしろにしてきたので改めて学んでみました。:::note
【こんな方にオススメ】
・Node.jsについて勉強したことがない
・Node.jsを勉強しようと思っているけど1歩踏み出せない
:::本記事は下記書籍の要約です。
気になった方はぜひ読んでみてください!:::note note
解釈が間違っている場合は遠慮なくコメントをいただけると大変嬉しいです!
:::https://gihyo.jp/book/2023/978-4-297-12956-9
## 本書の構成
ざっくり下記のような構成でした。
– Node.jsについて
– JavaScriptの基本的な構文
– Node.jsの活用
– フロントエンドとバックエンド
– 運用とチューニング私は初学者なのでその中でもNode.jsの特徴について触れたいと思います。
## Node.jsってなに?
Node.jsはChromeに内蔵されているV8というJavaScriptの実行環境のこと。
2009年に登場して
node.jsのアプリケーションをAWS ElasticBeanstalkにデプロイしてみる。
node.jsの非常に簡素なアプリケーションをAWS ElasticBeanstalkを用いて公開するやり方をまとめていく。
これは下の動画に従ったものであるので下の動画を見てもいい。また、公式のドキュメントにもnode.jsとExpressを用いたアプリケーションの公開の仕方があった。この記事では最低限のことしか書かないので実際に実用性のあるアプリケーションを公開する際には公式ドキュメントを参照してほしい。https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html
まず、作業に移る前に必要なことがいくつかある。
Gitへの登録とAWSアカウントの作成である。
こちらは行っていることを前提に進めていく、難しい作業ではないので各自調べて行ってほしい。そして、ElasticBeansをコマンド上で操作するためにEB CLIのダウンロードをする必要がある。
ht
Node.jsのインストールが失敗した原因と解決方法
Vue.jsの学習のための環境構築中、Node.jsをインストールしようとした時にエラーが発生したので、その対応についてのメモ。
#### 実施していた環境構築
Node.jsのアップデートは頻繁に行われるため、バージョン管理ツールとして**nvm-windows**を利用した。githubからnvm-setup.zipをダウンロードし、nvm-setup.exeを実行してインストールする。
[https://github.com/coreybutler/nvm-windows/releases](https://github.com/coreybutler/nvm-windows/releases)インストールウィザードに従い、インストール先とシンボリックリンクを指定します。
インストール完了後に、nvmコマンドを使ってNode.jsをインストールしようとすると、エラーが発生した。
## Node.jsのインストール
nvmコマンドからNode.jsをインストールするのに使用したコマンド↓
“`bash
nvm install latest
“`
バージョンを指定
node.jsでブラウザーテストをするselenium-webdriverのセットアップ
## はじめに
この記事はnode.jsでE2Eテストを構築する、Selenium-Webdriverのセットアップと更新の方法を記録、共有するためのものです。
:::note warn
Seleniumは幅広い環境をサポートしていますが、この記事ではnode.jsでのセットアップのみを取り扱います。
:::Seleniumは幅広い環境とシナリオを対象にブラウザーテストを提供していますが、情報量が多すぎて特定環境でのセットアップ手順が調べにくいです。この記事はnode.jsに限ってSeleniumの構築方法を解説します。
### 想定する環境
_▼システムバージョン_
“`bash
% sw_vers
ProductName: macOS
ProductVersion: 12.6.1
BuildVersion: 21G217% brew –version
Homebrew 3.6.19
Homebrew/homebrew-core (git revision e8a1e49d82b; last commit 2023-01-18)
Homebrew/homebrew
Discord.js これだけはするな!もしくは陥りやすい間違い集もしくはTips
## Discord.js 禁忌リスト
### なんでこれを書こうと思った?
初心者のときバカなことばっかりやってたからです### client.on(“messageCreate”)の濫用
“`javascript
//長いのでカット!client.on(‘messageCreate’, async msg => {
if(msg.content === “hello”) {
msg.reply(“HELLO!”);
}
});
client.on(‘messageCreate’, async msg => {
if(msg.content === “good morning”) {
msg.reply(“GM”);
}
});
client.on(‘messageCreate’, async msg => {
if(msg.content === “good afternoon”) {
msg.reply(“Good afternoon!”);
}
});
client.o
SDKを使わずにNode.jsからAzure IoT HubへMQTT接続する
MQTT.jsでIoT Hubに接続したときのメモです。
# 準備
とりあえずテストしたかったので無料プランを利用しました。デバイス作成までは以下が参考になりました。
– [Azure IoT Hub に Mosquitto™ から MQTT なげてみる](https://qiita.com/narutaro/items/1a16ff1321f5044afaf0)
認証はSAS(Shared Access Signature)を利用しました。
# 接続に必要な情報
AzureポータルからIoT Hubのリソースを表示し、必要な情報を取ってきます。(一部伏字にしています)
①ホスト名
②デバイスID
③主キー– 概要ページ
– ①ホスト名は[IoT Hubの名前].azure-device.netというフォーマットです。![iothub-info1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3116301/80589988-c940-88ad-afd0-b1a9f203e
ES Lintの導入
## 本記事を読んでできること
+ ES Lintを導入できる## ES Lintとは
+ https://eslint.org/## 環境
+ Windows10 Pro 64bit
+ Node.js v16.17.1## 手順
1. Node.jsをインストールします。
[Nodejsのダウンロード](https://nodejs.org/ja/download/)1. ターミナルを開き、以下のコマンドを実行してESLintをグローバルにインストールします。
“`
npm install -g eslint
“`1. プロジェクトのルートディレクトリに移動し、以下のコマンドを実行してプロジェクトにESLintをインストールします。
“`
npm install eslint –save-dev
“`1. 以下のコマンドを実行して、ESLintの設定ファイルを作成します。
“`
eslint –init
“`1. package.jsonに以下を追加
ElasticBeanstalkのUnknown or duplicate parameter: NodeCommandの対処法
昨日、下に貼ったこちらの動画と公式のドキュメントを基にnode.jsのアプリケーションをAWS Beanstalkでデプロイすることを試みた。
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create_deploy_nodejs_express.html
ということで上の資料ではエラーが起きてしまうところの対処法を先に記述する。
その後、全体の流れを記述する。“`
C:\Users\yusuk\nodejs-project>eb deploy
Creating application version archive “app-c698-230118_133959827133”.
Uploading nodejs-project/app-c698-230118_133959827133.zip to S3. This may take a while.
Upload Complete.
2023-01-18 04