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

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

TensorflowJSとGridDBを用いた赤ワインの品質予測

## はじめに

今回は、TensorFlowJSとGridDBを使ってモデルを学習し、赤ワインの品質を予測します。このチュートリアルでは、以下のNodeJS用ライブラリを使用します。

* TensorflowJS – モデルのトレーニングに使用します。
* DanfoJS – DataFrameの操作に使用します。

[ 記事の全コードはこちら ][1]をご覧ください。

データサイエンスやMLの実験を容易にするためにはNode Notebooksを使った作業が便利です。Visual Studio CodeはNode Notebooksをサポートする素晴らしいエディタなので、この記事ではそれを使用することにします。注: Danfo JS と Tensorflow JS は最低でもnodeのバージョン 12 が必要で、griddb はnodeのバージョン 10 で動きます。

“`javascript
const dfd = require(“danfojs-node”)
var fs = require(‘fs’);
const tf = dfd.tensorfl

元記事を表示

自作 isEmpty が意外と難しかった件

# とにかく empty

– undefined
– null
– [](Arrayの要素0)
– {}(Objectのメンバーなし)
– ”(空文字)

javascriptには様々な型(値)がありますが、四の五の言わず empty として判定したい!

# isEmpty(最終版)

“`javascript: util.js
const isEmpty = (obj) => {
if (‘number’ === typeof obj) {
return false
}

return (!obj ? true : (0 === Object.keys(obj).length))
}
“`

## 実行結果(isEmpty)
“`
let aaa
console.log(‘isEmpty’,typeof(aaa),String(aaa),’=’, util.isEmpty(aaa))
aaa = null
console.log(‘isEmpty’,typeof(aaa),String(aaa),’=’, util.isEmpty(aaa))
aaa

元記事を表示

JavascriptでAuth0の認可を実装してみた

# はじめに

認証認可のシステムを社内で実装する手間を避けるために、SaaSを使用することも多いかと思います。この手のツールの中でもyoutubeに日本語関連の動画が少なかったAuth0について実際にコードから使用してみようというのが今回の記事になります。

対象読者は認証認可サービスに興味がある人なら誰でもOKです。

まず前提知識としてこれらの認証認可のサービスがどんなことをやるのかを頭に入れておく必要があります。私は以下の記事を一読し、似た単語などをGoogleで調べるなどして勉強してみました。

https://qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be

https://qiita.com/TakahikoKawasaki/items/498ca08bbfcc341691fe

ただ、ここまでは実装方式のホワイトペーパーを見ているにすぎないため、実際のサービスであるAuth0を叩いてみましょう。

今回やるのは以下です。

大目標「フロントアプリから適当なユーザでログインを行い、そのユーザの権限を使ってAPIへ

元記事を表示

Amazon Linux2での環境構築メモ(Git、Node.js、MySQL)

## はじめに
よくわからなくなってググるので超個人的備忘録として書き記しておきます。

### 動作環境
OS:Amazon Linux2

## gitのインストール
コマンドラインで以下のコマンドを入力
“`bash
sudo yum install git
“`

インストール確認。
“`bash
git –version
“`

これでgitのインストールは完了。
あとは任意のリポジトリを`git clone`してやればOK

## Node.jsのインストール
まずはnvm(Node.jsのバージョン管理ツール)をインストールします。
[公式サイトの手順](https://github.com/nvm-sh/nvm/tree/v0.37.2#installing-and-updating)に従うだけで大丈夫。コピペで簡単。
“`bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
“`

bashを開き直すよう言われるので開き直してからインストー

元記事を表示

BufferとTextDecoderの微妙な差

Node.jsの標準で存在する`Buffer`と、WHATWG発祥の`TextDecoder`でそれぞれバイト列をUTF-8として解釈できますが、微妙に結果が違うことに気づきました。

## TL; DR

* 正当なUTF-8となるバイト列であれば、`Buffer`と`TextDecoder`の結果に差は出ない
* 途切れたマルチバイト文字の解釈で、生成される`�`(U+FFFD)の数が違う
* この挙動差に依存するコード自体に嫌な雰囲気を感じる一方、`Buffer`の挙動のほうが一貫している印象を受けた

## 気づいたきっかけ

`Buffer`で書かれたコードを`TextDecoder`に直したところ、テストがコケてしまいました。テストの状況を確認してみたところ、正常系では特に問題がなかったのですが、正しくUTF-8として解釈できないコードで、`�`(U+FFFD)の個数が違っていました。

## UTF-8の構造

正しくないコードについて語るために、ここでUTF-8の構造について整理しておきます。日本語用のシフトJISやEUCでは、1バイト目と2バイト目で同じバイトを使って

元記事を表示

OpenseaでNFTに「無限いいね」するツールをリリースしました。

なんということでしょう!

### 我々はついにブラックホールの生成に成功し、さらにタイムマシンをリリースするまでに至ったのです。

ここまで非常に長い道のりでした。

—–

ぜひともみんなにツールを見てもらいたいから、まずはリンクを貼らせてください。

**OpenseaNFT用 無限いいねツール その名も「[OpenShit](https://sigr.io/)」**

OpenShitリンク:https://sigr.io/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576748/0b49b077-8746-506c-c909-ec3865cc01cf.png)

ちなみに前回の記事ではツールを作成するまでの技術的な事を書いています。

**【Opensea】NFTに無限に「いいね❤」押せるツールを作成した話**

すべてJavaScriptとNod

元記事を表示

【Node.js】Node.js を nodenv で管理する

# Node.jsとは
ブラウザ上で動作するJavaScriptを、サーバー上で動作させるためのソフトウェア

## Node.jsをフロントエンド開発でも使っているのはなぜ?
* **npm** でのパッケージ管理
* パフォーマンス最適化のために、JavaScriptやCSSファイルを少数のファイルにまとめる(バンドル)
* テストツールを用いてユニットテストやE2E テストを記述する

など、Node.jsの役割はいろいろある

### npm
* Node.jsのパッケージ管理システム(パッケージのインストールと整合性の管理をする)
* 現在ではフロントエンドのパッケージ管理にも使用されるようになった

## Node.jsのインストール
[推奨] Homebrew経由の **anyenv** 経由の **nodenv** 経由でNode.jsをインストールする

### anyenv
* 「**env」をまとめて管理してくれる

### nodenv
* プロジェクト毎のバージョン切り替えが楽になる(詳しくはこの後解説)

## インストール手順
### ① Homebre

元記事を表示

Node.jsでSNMPエージェントから値を取得する

Node.jsでSNMPの値を取得します。

# 利用するnpmモジュール

net-snmp を使います。

https://github.com/markabrahams/node-net-snmp

# 独自MIBファイルを追加する

標準MIBは以下が参考になります。(非常に助かってます)
 [ネットワーク機器のSNMP MIB/OIDまとめ](https://qiita.com/Mabuchin/items/d435c0afb4f0ca17ad25)

場合によって、監視対象の機器が独自の情報を提供している場合があります。
その場合、MIBファイルを提供しているのがほとんどです。

●Synology製 NASの場合
 https://global.download.synology.com/download/Document/Software/DeveloperGuide/Firmware/DSM/All/enu/Synology_DiskStation_MIB_Guide.pdf
 https://global.download.synology.com/download

元記事を表示

次世代ORM Prisma スキーマから型安全なコード自動生成

# Prismaとは
PrismaはNode.jsとTypeScript用のオープンソースORMです。
なので、Prismaではデータベースに接続、マイグレーションでテーブル作成、データの投入を実現できます。
また、schema.prismaでスキーマ定義からTypeScriptのコードを生成することも可能です。

# 特徴
Prismaには次の3つの特徴があります。
### ①Prisma Client
Prisma Clientは自動生成されたTypeScriptのメソッドを呼び出すことができます。
このメソッドにはcreate、deleteなど様々なメソッドがありそれらを利用し、型安全なデータベース操作を可能にすることができます。
Sequelize、TypeORMなどのSQLクエリビルダなど従来のORMの代替として注目されています。

### ②Prisma Migrate
Prisma Migrateではschema.prismaで定義されたテーブル情報を元にデータベースにテーブルを作成します。

### ③Prisma Studio
Prisma Studioではブラウザ上

元記事を表示

yum install nodejs | Error: Package: 1:nodejs-16.15.0-3.el7.x86_64 (epel)

3ヶ月ぐらいに触れていなかったプロダクトアプリ立ち上げるために`docker-compoer up -d`しましたとさ。
以下のエラーがでましたとさ。

“`
Loaded plugins: ovl, priorities
240 packages excluded due to repository priority protections
Resolving Dependencies
–> Running transaction check
—> Package nodejs.x86_64 1:16.15.0-3.el7 will be installed
–> Processing Dependency: nodejs-libs(x86-64) = 1:16.15.0-3.el7 for package: 1:nodejs-16.15.0-3.el7.x86_64
–> Processing Dependency: libuv >= 1:1.43.0 for package: 1:nodejs-16.15.0-3.el7.x86_64
–> Processing D

元記事を表示

【typeorm】「オプションではない引数が 0 個では不足しています。少なくとも 1 個の引数が必要です」のエラー

## やろうとしていたこと
Expressとtypeorm使って、学習がてら個人開発してました。
entityを作ろうと思って、下記コマンドを叩いたら、

“`
$ npx typeorm entity:create -n User

typeorm entity:create

Generates a new entity.

オプション:
-h, –help ヘルプを表示 [真偽]
-v, –version バージョンを表示 [真偽]

オプションではない引数が 0 個では不足しています。少なくとも 1 個の引数が必要です:
“`

タイトルのエラーが出ました。
引数が足りないって、どういうこっちゃ。公式に書いてある通りに叩いているのなんでエラーでるんだ?

## 原因
ヘルプオプションをつけて調べてみたところ、

“`
$ npx typeorm entity:creat

元記事を表示

webhookを叩くだけのシンプルなLambdaを5つの言語で作ってみて実行速度を測る

我が社にて、cloud watchのalertを拾って、LambdaからIFTTTのwebhookに繋げてパトライトを光らせよう、っていうプチプロジェクトが走ろうとしております。

![スクリーンショット 2022-08-13 13.20.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/96ae713e-868f-6a59-91ff-2bfbd6bbf46c.png)

だいたいこちらの記事のような内容です。
https://kimama.cloud/2020/01/06/alarm2patlite/

ただ、今回はこのへんの事情は関係なく・・・

![スクリーンショット 2022-08-13 13.22.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308709/33dc51b1-853e-9f45-be5d-ef884f48dadc.png)

↑ここだけの記事です。Lambdaのみ。

##

元記事を表示

nvm for Windows 導入

Node.js のバージョン管理ツールにnvm for Windows を導入しました
その時の記録を書きます

## 環境
– OS: Windows 10
– Node.js, npmインストール済

## nvmとは
– Node Version Manager の略で、Node.js のバージョンを管理するためのツール
– Node.js の異なるバージョンを切り替えることができる
– [nvm公式によると](https://github.com/nvm-sh/nvm)はLinux環境に対応しており、WindowだとWSLなどLinuxの環境が必要らしい
>nvmはPOSIX準拠のシェル(sh、dash、ksh、zsh、bash)、特に以下のプラットフォームで動作します:UNIX、MacOS、Windows WSL。
– 今回は、Window対応版の [nvm for Windows](https://github.com/coreybutler/nvm-windows) を利用する

## Node.js 削除
– [Microsoftの記事](https://docs.mi

元記事を表示

SequelizeでDBのテーブルとデータを作成し、CRUD操作してみる(2)

 [前回の記事](https://qiita.com/furi-kake/items/c47b098cdcf053bcf287)で、Sequelize-cliを使ってDB上にテーブルを作成し、そこにレコード(シードデータ)を挿入するところまで出来た。今回はその続きで、SequelizeによるDB上のデータのCRUD操作を行ってみる。前回Sequelize-cliを使って作ったテーブルとデータをそのまま使っていく。

# 開発環境
* `sequelize: 6.21.0`
* `sequelize-cli: 6.4.1`
* `node: 17.1.0`
* `express: 4.18.1`

# 準備

 レコード取得系のメソッドに関しては、デベロッパーツールでデバッグポイントを貼って、検索したモデルのインスタンスの中身をコンソールで見るとかするのもめんどくさいので、DBの検索結果をそのままクライアント側に返すAPIサーバをNode.jsのフレームワークであるexpressを利用して構築し、返ってきたjsonレスポンスを確認するという形にしたい。

 まずは以下のひな型を用意して、

元記事を表示

SequelizeでDBのテーブルとデータを作成し、CRUD操作してみる(1)

# プロローグ
 `Sequelize`は、公式によるとPromiseベースのNode.jsのORMツールとのこと。
ORMについてはちゃんとは分かってないけど、「コード上でのデータベース操作を簡単にしてくれるツール」的なモノらしい。これに関しては、色々調べるとインピーダンスミスマッチとかいうロックバンドみたいな名前の概念がでてきたりとかして深みにはまりそうだったので、ワイは「なんか便利らしいしそれ使うんならORMを使わない方法と比べてどうとかはとりあえずいいや」ってことにしたんで今回はスルーするンゴ。

 今回は`Sequelize-cli`というCLIツールを使ってアプリケーションプロジェクトの環境を構築し、DB側のテーブルやデータを作成する手段から、Sequelizeを通したDBに対するCRUD操作までを2つの記事にわたって網羅的に解説していく。

# 開発環境
* `sequelize: 6.21.0`
* `sequelize-cli: 6.4.1`
* `node: 17.1.0`
* `npm: 8.1.2`

# 準備
 Sequeli

元記事を表示

【Windows】Node.js のバージョンアップ

Node.js のバージョンアップをしたときの記録を書きます

## 環境
OS: Windows 10
Node.js: v14.16.1

## Node.js バージョン確認方法
– PowerShellまたはコマンドプロンプトを開く
– `node -v`コマンドを実行する
“`
PS C:■■■■■■■■■> node -v
v14.16.1
“`

## 手順
– Node.jsの公式サイトにアクセスする
– https://nodejs.org/ja/download/
![スクリーンショット 2022-08-13 205028.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2667439/1a3285bf-0995-3109-1edd-27b6609a062b.png)

– Window版のインストーラをダウンロードする
– 私はnode-v16.16.0-x64.msi をダウンロードしました
– インストーラを実行する
– インストールが完了するまで待つ
– イ

元記事を表示

Node.js Stream 個人的まとめ

# ストリーム(Stream)とは

– ストリームとはファイルのデータ(Buffer等)を読み込んだり、読み込んだデータを別のファイルに書き込むことができるインターフェースのこと
「インターフェース」とは複数のものをつなぐ技術や方法

>A stream is an abstract interface for working with streaming data in Node.js. The node:stream module provides an API for implementing the stream interface.
>There are many stream objects provided by Node.js. For instance, a request to an HTTP server and process.stdout are both stream instances.
>Streams can be readable, writable, or both. All streams are instances of EventEmitt

元記事を表示

Nodejsでフォルダ内のファイルから繰り返し処理でmoduleを読み込む

こんにちはAmpoiです。Skuronosukeから名前を変えて初めての投稿となりますが、この記事ではDiscordJSでコマンドの情報と各コマンドの実行内容を繰り返し処理で取得したい時などに使えるNodejsでフォルダ内のファイルから繰り返し処理でmoduleを読み込む方法を紹介していきます。

# やりかたー
fsモジュールを使ってフォルダ内のファイルを繰り返し処理で取得し、それらのファイルの中にあるデータをfsコマンドで取得・リストに格納します。

# コード
“`js
//./commands/hogehoge.js

//commandsフォルダ内にあるファイルの一例
module.exports = function(){
return {
data:{
name: “bot”,
description: “どういうことBOT「どういうこと」”,
options: [
{
type: 3,
name: “moji”,
required: true,

元記事を表示

あるWebサービスの開発メモ・Docker + Nextjs + TypeScript + mui + supabase-js + react-query + swiper の導入手順

– [あるWebサービスの開発メモ・目次ページに戻る](https://qiita.com/ishi32/items/152a1ecf7eeee7a8fb57)

## Github

まずは Github に新規リポジトリをつくります。「Github なんか使わないよ」という方は、Vercel へのデプロイが git push をトリガーにしているのでぜひ導入を検討してみてください。

![スクリーンショット 2022-08-12 9.40.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539175/8afa5fee-d5f0-358d-8801-8886a414e2e6.png)

– [Create repository]

クライアントPCで clone します。

“`
$ git clone [url]
Cloning into ‘sirokuro-dev7’…
remote: Enumerating objects: 3, done.
remote: Counting obje

元記事を表示

【Node.js】検証と実践:Streamの基本的な使い方

`fs.Readable`と`fs.Writable`を使って画像ファイルをコピーするプログラムを作り

ストリームの基本的な使い方を検証、理解していきます。

利用するNode.jsのバージョンはv16.xです。

## この記事は何?

次のような方向けになると思います。

– Node.jsのstream APIを一通り目を通した人。
– 具体的に`writable.write()`を使った最低限レベルでのストリームを使った実装方法を知りたい人。

`fs.writeFile()`のような一旦ファイルの内容をすべてメモリを展開するメソッドを使わずに
メモリが節約できるストリームを使っていく方法を模索していきます。

ストリームの基本的な使い方といいつつ、
`trasform`と`duplex`ストリームについてはこの記事で扱いません。
`Readable`と`Writable`のみ扱います。

この記事の流れですが、
まず誤解したままでざっくり実装してみて、その後間違っている部分を公式の説明をみたりして解消していき、改善したコードに作り直していきます。

なげーです。

##

元記事を表示

OTHERカテゴリの最新記事