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

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

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

元記事を表示

Node.jsのトランスパイル時にESLintでエラーがあればBuild停止する設定をWebpackでやってみた

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/n92d51d4445ff

**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です。**

## 補足
ソースコード全体は以下。

https://github.com/yuta-katayama-23/node-express/commit/d7f4b09ade8c708fbcbb78fe3d804ec2c081b3c0

元記事を表示

[Cloud Functions] FirebaseStorage に保存された画像の幅と高さを取得する

Flutter / Firebase のアプリ開発で実装したことを記事にしました。
誰かのお役に立てれば幸いです。

アプリから、FirebaseStorage に画像を保存したときに、
その画像の width と height を取得する必要があったので、CloudFunctions 内で
画像サイズを取得する関数を作成しました。

## パッケージの導入

画像サイズを取得するパッケージは、

https://www.npmjs.com/package/image-size

こちらを使いました。コードが、とてもシンプルです。

## 画像パスから width , height を取得

まずは、Storage に保存された画像のパスと一時的に保存するディレクトリのパスを
用意する必要があります。
一時保存のディレクトリに画像をダウンロードしてから、サイズを取得する流れです。

“`typescript
import * as functions from “firebase-functions”;
import * as fs from “fs”;
import * as pa

元記事を表示

Slack AppでリクエストURLにLambda(Node.js)の関数URLを指定してYour URL didn’t respond with the value of the challenge parameterが出た時の対応

## はじめに

Slackアプリの Event Subscriptions -> Enable Events -> Request URLでURL設定時にタイトルのエラーが出た場合の対応方法を整理します。

## エラー内容

“`
Your URL didn’t respond with the value of the challenge parameter.
“`

– 内容としては`challenge` パラメータを指定してレスポンスを返していない、という意味です。

## 結論

Lambda(Node.js)の場合、以下のようなコードを書けばOKです。
`challenge` のみを含むレスポンスを返却するのがポイントです。

“`index.js
exports.handler = async (event) => {
// TODO implement
console.log(`event=${JSON.stringify(event)}`);
const event_body_json = JSON.parse(event.body)

元記事を表示

ワードクラウドを自作ニュースアプリに追加してみた

## はじめに
この間Node.jsで多言語Webニュースアプリ作ってみました

https://qiita.com/aibazhang/items/a53893c22c00d5962e62

https://www.multitrue.news

ニュースのタイトルと概要だけではつまらないので、単語の出現頻度によって直近一週間のニュースからワードクラウド作って、一目で世の中の出来事を確認できたら面白そうじゃないかと思いながら、ワードクラウドをニュースアプリに追加してみました。

## 詳細

ソースはこちらから確認できます。

https://github.com/aibazhang/multitrue

### 下準備
日本語と中国語などは英語と異なり、単語と単語の間スペースがないので、形態素解析が必要です。簡略化するために、今回は英語のワードクラウドのみを作ることにしました。人称代名詞や助動詞のような`Stop Words`をワードクラウドに出しても意味がないので、NLTKの英語`Stop Words`辞書を利用します。

https://gist.github.com/sebl

元記事を表示

fish で n を使って node をインストールしたときにハマったこと

nodeのインストール時に少し詰まったので備忘録として書いておこうと思います。

# 結論:

> fish での環境変数指定では `-x` オプションを忘れない!

“`shell:config.fish
set -x N_PREFIX $HOME/.n. # -x オプションが必要だった
set PATH $N_PREFIX/bin $PATH
“`

# n をインストールし、 n lts でインストールに失敗する

n のインストールは Homebrew でインストールしました。

“`shell
brew install n
“`

n ではインストール先が /usr/local/bin になっていますが、これだと権限でエラーになります。なのでインストール先を以下のように指定し、パスも通しました。

“`shell:config.fish
set N_PREFIX $HOME/.n
set PATH $N_PREFIX/bin $PATH
“`

これでインストールはできるようになったはずなので安定版をインストールしてみます。

“`shell
n l

元記事を表示

VSCodeで利用したいnodejsを指定してデバッグ実行する

nodejs上で動作するプログラムをVSCodeでデバッグ実行する際に、デフォルトだと`pwa-node`というVSCodeに組み込まれたnodejsが利用されます。

nodejsの特定のバージョンを指定して実行したい場合は、そのバージョンのnodejsをインストールし、`.vscode`フォルダにある`launch.json`ファイルで、`runtimeExecutable`にインストールしたnodejsのパスを指定することで実現できます。

“`
{
・・・
“type”: “pwa-node”,
“runtimeExecutable”: “/Users/someone/.nvm/versions/node/v12.14.0/bin/node”
}
“`

元記事を表示

OTHERカテゴリの最新記事