Node.js関連のことを調べてみた2022年05月21日

Node.js関連のことを調べてみた2022年05月21日
目次

Docker-compose3でnode.js&mongodb&nginxの環境を整える

# はじめに
 これはある記事を参考にnode.jsとmongodbとnginxのDocker環境をcomposeでめっちゃお手軽に作ったろ、とか思ったらエラーしたため案外悪戦苦闘してしまった人のお話です。
 そのため、ほとんど内容は書かず、下に貼ってあるサイトに丸投げします。
 ただ一点、エラーの発生する場所だけ書きますのであらかじめご理解を。

(この記事を書いてるEchizenって人なんですが、一応何かしら言っといたほうがいいのかしらん?)

[参考]

https://zenn.dev/cizneeh/articles/nginx-node-mongo-docker-example#docker-compose.yml
# 環境
**22/05/21**
・CentOS7
・Docker 1.13.1
・Docker-compose 1.18.0
# docker-compose.yml
 参考のサイトを進めていけば適当なディレクトリ構成でnode.jsとmongodbとnginxが使える環境が作れるはずなのですが、最後の最後に書かれているdocker-compose.ymlは

元記事を表示

Node.js x LINE Messaging APIで複数メッセージを1度に送ってみた

## はじめに
LINEの公式ドキュメントでは単一メッセージを送るサンプルコードしか記載がなかったため、複数メッセージを特定ユーザに送ることは可能かを検証してみました。

## 方法

“`bash
$ npm install @line/bot-sdk
“`

“`test.js
const line = require(‘@line/bot-sdk’);

const client = new line.Client({
channelAccessToken: ‘
});

const message = [
{
“type”:”text”,
“text”:”Hello, world1″
},
{
“type”:”text”,
“text”:”Hello, world2″
}
];

client.pushMessage(‘‘, message)
.then(() => {
console.log(‘Success’);

元記事を表示

AWS EC2でCyberChefを動かす

# はじめに

## AWS EC2とは

数分でクラウド上に仮想マシンを立てることができるサービス。

[Amazon EC2(安全でスケーラブルなクラウド上の仮想サーバー)| AWS](https://aws.amazon.com/jp/ec2/)

## CyberChefとは

ブラウザ上でデータに対する様々な操作ができるアプリケーション。

[CyberChef](https://gchq.github.io/CyberChef/)

# AWS EC2でCyberChefを動かす

## EC2インスタンスを起動する

今回は以下の設定でEC2インスタンスを起動します。
詳しいやり方はここでは省略するので、必要に応じて各自調べてください。

* 名前
* 適宜設定する (例えば `CyberChef`)
* アプリケーションおよびOSイメージ
* Amazon マシンイメージ (AMI):Ubuntu Server 22.04 LTS (HVM), SSD Volume Type
* アーキテクチャ:64 ビット (x86)
* インスタンスタイプ
* **

元記事を表示

brew upgrade voltaしたら、nodeにPATHが通らなくなった時の解決法

# 環境

– macOS 12.3.1
– Homebrew 3.4.11
– Volta 1.0.5 -> 1.0.7

# Volta

Voltaはクロスプラットフォームで使えるNodeとnpmのバージョン管理ツールです。かなり高速で、使い勝手も良いので、未導入の方は是非。

https://docs.volta.sh/guide/

# upgrade

voltaを最新にアップグレード

“`terminal
$ brew upgrade volta
“`

# command not found: node

nodeはおろかnpmも。焦る。

“`terminal
$ node -v
zsh: command not found: node

$ npm -v
zsh: command not found: npm
“`

けど、voltaだけはPATHが通っている状態

“`terminal
$ volta -v
1.0.7
“`

# 解決策

voltaをsetupすれば直りました。
もしかしたらupgradeした時にターミナルに出力されてたのかも。

元記事を表示

Node.js で osm-pbf-parser を使うときのメモ

# はじめに

Node.js で OpenStreetMap の PBF をパースするときに [osm-pbf-parser](https://www.npmjs.com/package/osm-pbf-parser) を使うことが多いのですが、example の書き方が 2015年当時のものでちょっと扱いに困ることがあるので、2022年ならこう書くかな?というものを記録しておきます。

# Before (official example)

“`js
var fs = require(‘fs’);
var through = require(‘through2’);
var parseOSM = require(‘osm-pbf-parser’);

var osm = parseOSM();
fs.createReadStream(process.argv[2])
.pipe(osm)
.pipe(through.obj(function (items, enc, next) {
items.forEach(function (item)

元記事を表示

M1 MacにNode.jsをインストールする方法と使い方(Node.jsバージョン管理)

## はじめに
nodenvを使うと、Node.jsのバージョン管理がしやすくなります。つまり、プロジェクト毎にNodeのバージョンを指定して実行ができます。

今回はM1 MACにHomebrewを使ったnodenvのインストール方法と使い方をこの記事でまとめていきたいと思います。

## 環境
・macOS Big Sur 11.4

## 1.Homebrewをインストール
[Homebrew](https://brew.sh/index_ja)をインストールしていない場合は、先にHomebrewをインストールします。
“`
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

## 2.nodenvをインストール
nodenvをインストールします。
“`
$ brew install nodenv
“`

## 3.nodenv にパスを通す
自分は以下の記述がなかったため上手くバージョン管理ができなかったです。
“`

元記事を表示

nvmのインストールの仕方と入門的な使い方のまとめ【Mac】

今までフロントをがっつりやってこなかったのすが、最近reactをよく触るようになったり、Udemyを受けたりしてて、講座によってnodeのバージョンが違ったりしてときおり不安になることがあるので自分の端末でもnvmを導入することにしました。

タイトルにはMacと書いてますが、おそらくどのOSでもいけると思います。

## nvmのインストール

### bashの場合

“`bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
“`

### zshの場合

“`zsh
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | zsh
“`

でいけます。

もしすでにnodeがインストールされている場合は、

“`
brew uninstall node
“`

でアンインストールしましょう。(nodeが入ってしまっているとnvmがインストールできないという噂を聞

元記事を表示

?静的HTMLファイルをNode.jsで立ち上げたサーバーを使ってLocalhostに表示させる!

Progateを使ってWeb製作をし始めてから2週間。ある程度知識が集まってきたので、ほぼ同じでもいいから自分で何か作ってみようと始めた矢先…。

エクスプローラに置いている静的HTMLファイルを、Node.jsを使って立ち上げたサーバーで表示したい。サーバーを立ち上げるコードなどは知っていたが、Progateと同じコードでやってもできない。

結局解決したが、気を付けなければいけないことがあったので、自分の勉強の証として残しておきます。

# 結論:パスが違った
ファイルの階層はこんな感じ

“`
MyIntroduction
├── public
│ ├── img
│ │ └──background.png
│ └── css
│ └──stylesheet.css
├── view
│ └── index.html
├── app.js
└── package.json
“`

下記のapp.jsはExpressを使ってルーティングをするためのファイルで、改善前です。

“`javascript:app.

元記事を表示

nvm windowsで「Unexpected token ‘.’(ピリオドエラー)」を直した話

nvmはnodejsのバージョン管理ツールで、複数のnodejsやnpmバージョンを使いたい場合にとても便利です。しかしWindows版ではnvmのバージョン1.1.7で以下のようなエラーが生じていました。
[GitHub](https://github.com/npm/cli/issues/4234)でも長期に渡って議論されていたようですね。

“`
$npm init
npm ERR! Unexpected token ‘.’
npm ERR! A complete log of this run can be found in:

元記事を表示

Node.jsからMongoDBにアクセスできない(2022)

Node.jsからMongoDBにアクセスするまでに意外と手間取ってしまった。。
忘れないように記録しておく。

# インストール
ちなみにOSは、Windows 10

* Node.jsをインストーラの指示に従ってインストール(v18.0.0)
* MongoDBをインストーラの指示に従ってインストール(v5.08)
 ⇒インストール時、「Install MongoD as a Service」にチェック
  (MongoDB ServiceサービスがWindowsに登録される)
 ⇒途中「MongoDB Compass」にチェックをつけておく
  (インストール後MongoDB compassが立ち上がる)
 ⇒インストール後、mongoのパスを通しておく

# MongoDBにデータ登録
* コマンドプロンプトを開いて、mongoシェルを起動
~~~:コマンドプロンプト
cmd > mongo
~~~
* データベース:myDBを作成
~~~:コマンドプロンプト
> use myDB
switched to db myDB
~~~
* コレクション:tableを作成
~~~:コ

元記事を表示

終わる順番は気にしないから一気に処理を実行させてその結果を返して!

# はじめに

JavaScrip や TypeScript を触っていると避けて通れないのは「非同期処理」です。
よくネット上で見るものは、非同期処理を同期処理のように順番に実行する方法を記載してくれてるものが多いと思います。

こんな感じ。
“` _.js
async function sample(){
await axios.get(“/api/test1”).then(function (response) {

});
}
“`

もしこの状態でAPIが複数に増えた場合、処理速度はどんどん伸びてしまいます。
“` _.js
async function sample(){
await axios.get(“/api/test1”).then(function (response) {

});

await axios.get(“/api/test2”).then(function (response) {

});


}
“`

そうではなく、「/test1」と「/test2」の終わる順

元記事を表示

[Node.js] Expressサーバーのタイムアウト時間を変更する

# デフォルト

Expressでは、リクエストのタイムアウトデフォルト値が**2分**に設定されています。

# タイムアウト時間を設定

以下のように、オプションとして`timeout`が用意されています。そちらの値をミリ秒で指定することで、タイムアウト時間を変更することができます。

“`app.js
const express = require(“express”)
const app = express()

const appServer = app.listen(80, () => { })
appServer.timeout = 1000 * 60 * 5 // 5min
“`

# 参考

※2022/5/19追記:見れなくなっちゃってますね
[Node.js サーバーのタイムアウトの時間を変更する](http://backham.me/blog/2019/10/24/node-js-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82

元記事を表示

ESLint でプロジェクト独自のルールを設定する

# はじめに
今となっては Node.js での開発などでは必須となったツール、 [ESLint](https://eslint.org/)。
インポートの順番を特定の順番にしたり未使用の変数に Warning を出したり、プロジェクトに必要なルールを設定することでコードの品質を一定に保つことができるスグれたツールです。
プラグインの機構も備えており、多くの開発者が様々なプラグインを組み合わせてルールを設定していることと思います。

そんな ESLint ですがあらゆるユースケースに対応できるかというと必ずしもそうではなく、中には ESLint でカバーできていないプロジェクト独自のルールがあったりするのではないでしょうか。
この手の独自のルールというのは機械的にチェックすることができないと、レビューの時に余計なやり取りが生じたりプロジェクト新規参画者にとってもどういうルールがあるのかをいちいち読みに行かないといけなかったりとあまりいい状態とは言えません。
そこで今回は、そんな ESLint でカバーできないルールをプラグインを自作することでカバーできるようにしてみようと思います。

元記事を表示

REST API Design Best Practices を用いたAPI開発 #2 (APIのVersion管理)

本記事は[REST API Design Best Practices を用いたAPI開発 #1](https://qiita.com/ryumura/items/9ee28d43ec27edc36e2e)の続きです。

## 動機
[REST API Design Best Practices を用いたAPI開発 #1](https://qiita.com/ryumura/items/9ee28d43ec27edc36e2e)と同様、以下の記事をFollowしながら手を動かすことで、少しでも昨今の流れ・感覚をCatch Upをすること、また自分自身のメモとして残すことを目的として記事に起こす。

https://www.freecodecamp.org/news/rest-api-design-best-practices-build-a-rest-api/

## 本記事で実施すること
* APIのVersion管理
* URLを用いたVersion管理の実装
* サーバの起動とアクセス確認

## 環境
[REST API Design Best Practices を用い

元記事を表示

【M1Mac】nodebrewを使ってNode.jsをインストール(PATH通らなくて悩んでいる人へ)

1. Homebrewをインストールする
1. Homebrewのサイトのインストール欄に書かれているコマンドをコピーしてターミナル上で実行

[Homebrew](https://brew.sh/index_ja)

2. 処理が終わった後に、最後らへんの行に指示が書かれているのでそれに従って実行する
3. Homebrewが正常に使えることを確認

“`bash
% brew -v
% brew doctor
Your system is ready to brew.
“`

2. nodebrewをインストールする
1. Homebrewを使ってインストール

“`bash
% brew install nodebrew
“`

2. PATHを通す
1. 以下の行を`~/.zsh

元記事を表示

REST API Design Best Practices を用いたAPI開発 #1

## 動機
仕事で関わるシステムの大部分が企業の基幹系システムであることが多く、昨今はやりのJavaScriptによる開発手法にCatch Upしきれていないと感じている。
以下の記事をFollowしながら手を動かすことで、少しでも昨今の流れ・感覚をCatch Upをすること、また自分自身のメモとして残すことを目的として記事に起こす。

https://www.freecodecamp.org/news/rest-api-design-best-practices-build-a-rest-api/

## 本記事で実施すること
* API開発に必要な基本的なフォルダ階層の作成
* npmを用いた必要なパッケージインストール
* EntryPointとなるindex.jsの作成
* サーバの起動とアクセス確認

## 環境
* OS
Microsoft Windows 10 Enterprise 10.0.19042 N/A ビルド 19042

* 開発環境
Visual Studio Code 1.64.2

* ターミナル環境
GNU bash, version 4.4.23(1

元記事を表示

パスパラメータ”/:id(\\d)”はどういう意味? Node.js Expressのパスパラメータの設定の色々

## はじめに
Node.jsのExpressでは、以下のようにパスパラメータに正規表現を使う事ができる。

“`js
app.get(‘/posts/:id(\\d+)’, (req, res) => {
console.log(req.params.id);
res.end();
});
“`

今回は、Expressのパスパラメータの書き方の設定方法について、その種類とその挙動(curlコマンドでAPIを呼び出した時のconsole.log(req.params.id)の出力内容)について実際に試してみて理解を深めてみたのでそれについてみていく。

※Expressのversionは4.17.1になります。

## Expressのパスパラメータの設定方法の種類
以下のように設定方法は何種類かあり、それらについてどのようなconsole.log(req.params.id)の結果が得られるか?を見ていく(他にも設定方法があるかもしれないが今回は以下の5種についてみていく事にする)。
![image.png](https://qiita-image-store.

元記事を表示

Nuxt.jsでインクリメンタルサーチ

# はじめに
ある案件で名前検索を実装することになり、文字を入力するたびに検索候補が現れるインクリメンタルサーチを作ってみたいと思い、実装してみました。ちなみにサーバーサイドはexpress、フロントはNuxt.js×TypeScriptです。expressやcss、その他細かい処理は省略していますが、悪しからず。
動きはこんな感じ。これに似た何かを作る際には参考になると思います。
![画面収録_2022-05-17_2_17_40_AdobeCreativeCloudExpress.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660725/35c38203-ea0f-4c22-59e1-a5a4b3157d94.gif)

![画面収録_2022-05-17_2_24_49_AdobeCreativeCloudExpress.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2660725/88a967d0-374c-

元記事を表示

仮想通貨ライブラリ ccxt

# 仮想通貨ライブラリ ccxt

Node.jsを使う機会があったので、そのまま仮想通貨自動取引Botを自作することにしました。今回は軽く板情報取得までの流れを掲載します。

## そもそもccxtとは
ccxtは、**様々な仮想通貨取引所のAPIをまとめたライブラリ**です。
ccxtについては様々な記事で詳しく紹介されているのでそちらを参照してください。
今回はJavaScriptでccxtを使ってみたので、サンプルソースを掲載します。
取引所はBitflyerを利用しているので、その他の取引所を利用している場合はソースが異なる場合があります。

## 1. ccxtライブラリの導入
Node.jsでは、パッケージ管理システムのnpmを利用してライブラリの導入を行います。
今回はccxtのライブラリを使用するので、導入する際は以下のコマンドを打ちます。

“`console
npm install ccxt
“`

## 2. ライブラリを読み込む
以下はソースコードに記述するものになります。

“`javascript
const ccxt = require(

元記事を表示

macOS Montoryでnoble(BLE)を使いたくてハマったところ #iotlt

## mac+Node.jsでBLEを使いたい

IoT関連だとBLEを使いたいよねって話題が定期的に出てきますが、Node.jsでBLEを制御するnobleというライブラリがmacだと使えなくなっていた問題が数年前くらいにありました。

そこに対して、以前書いた記事で`@abandonware/noble`を使うと使えるようになったという話までが2021年春頃の話題です。

https://zenn.dev/n0bisuke/articles/01-nodejs-ble-noble-2021

## macOS Montereyで問題再発

[当時](https://zenn.dev/n0bisuke/articles/01-nodejs-ble-noble-2021)はBigSurだったのですがMontereyに上げてから試したらインストールでこける事象に。

“`bash
$ npm i @abandonware/noble

npm ERR! code 1
npm ERR! path /Users/n0bisuke/Documents/ds/playground/insma

元記事を表示

OTHERカテゴリの最新記事