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

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

Lambdaのレイヤーの参照方法

Layerに配置したファイルは `/opt`で参照可能。
試しに表示してみる。

Google fontから[Noto Sans Japanese](https://fonts.google.com/noto/use#how-are-noto-fonts-organized)をダウンロードし、`.font.zip`にしてLayerにアップロード。
Lambda側でLayer参照の設定をしてから以下を実行

“`js
const fs = require(‘fs’);

exports.handler = function(event, context){
fs.readdir(‘/opt/’, function(err, files){
console.log(files);
context.done(null, err);
});
}
“`

Cloud Watchに以下のように出力される
“`
[ ‘.font’ ]
“`

さらに`.font`ディレクトリの中身を表示してみる
“`js
const fs = requir

元記事を表示

Amazon SQSのローカル実行環境ElasticMQの構築

Amazon SQSと互換があるElasticMQをインストールし、ローカルにあるLambdaのソースコードと連携するローカル実行環境を構築します

softwaremill/elasticmq

https://github.com/softwaremill/elasticmq

# ElasticMQのインストール

ElasticMQのインストール方法には複数ありますが、今回はDockerを使います。
特に、Docker環境としては、QNAPのNASにインストールします。理由は単にQNAP NASを利用しているから。

QNAPには、Docker環境として、ContainerStationがあります。
ElasticMQのDockerファイルは、リポジトリに対して、elasticmqの入力で検索にひっかかります。

https://hub.docker.com/r/softwaremill/elasticmq-native/

Dockerに馴染みのある方は、以下がわかりやすいかと思います。

 “`docker run -p 9324:9324 -p 9325:9325 so

元記事を表示

コード譜投稿アプリを作る #1(アプリ構築)

[←前回の記事](https://qiita.com/t_sekky/items/de8768b9826d98601164)

今回はひとまずRailsのAPIモードとNext.jsのアプリケーションを作っていきます
環境はM1macです

## Railsアプリ作成
[この記事](https://qiita.com/ydammatsu/items/a2fbae968149bf2c1999)に書いてあることを~~コピペ~~参考にしてdockerを使って構築しました
ruby3系とRails7系は初めてだけど試すのには絶好の機会だしまぁええでしょ

詰まった点としては`db:create`する際に以下のようなエラーが出ました
“`
/lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29′ not found (required by /usr/local/bundle/gems/nokogiri-1.13.0-aarch64-linux/lib/nokogiri/3.1/nokogiri.so) – /usr/local/bund

元記事を表示

nodebrewインストールメモ

nodebrewインストール方法
忘れるのでメモ

## nodebrew インストール
“`bash
$ brew install nodebrew
$ nodebrew setup
Fetching nodebrew…
Installed nodebrew in $HOME/.nodebrew

========================================
Export a path to nodebrew:

export PATH=$HOME/.nodebrew/current/bin:$PATH
========================================

# 上記で setup したときに表示されたコマンドを .bash_profile に追記
$ echo “export PATH=\$HOME/.nodebrew/current/bin:\$PATH” >> ~/.bash_profile
$ source ~/.bash_profile

# インストールしたいバージョンを下記から選択
$ nodebrew ls

元記事を表示

【Express】起動時に、「TypeError: express is not a function」のエラー

expressでサーバー立てようと思い、このように書いていたら、

“`typescript
//index.ts
import * as express from “express”;
const app = express();
“`

トランスパイルして実行したところ、こんなことを言われました。
“`
/dist/index.js:2
var app = express();
^

TypeError: express is not a function
“`
※ちなみに、tsconfig.jsonの`module`は、`es6`です。

## 対処法

“`typescript
//index.ts
import * as express from “express”;
//↓
import express from ‘express’;
“`
という記事を見て、真似してみましたが、今度は下のようなコンパイルエラーも出ました。

“`
このモジュールは ‘export =’ を使用して宣言されていて、
‘allowSyntheticDefa

元記事を表示

Node.js ExpressでEJS+静的ファイルWebサーバー

# 概要

Node.jsでEJS実行環境と静的ファイルをそのまま返すwebサーバーを作ってみた

# 方針

目標はApache(Nginx)+PHPのような環境をNode.js(Express)+EJSで構築すること

– 拡張子.html .ejsはEJSテンプレートとしてレンダリングして返す
– それ以外のファイルはそのまま返す

# 参考

以下の記事を参考というかほとんどこれをベースにカスタマイズしました

https://note.affi-sapo-sv.com/nodejs-webserver.php?utm_source=pocket_mylist#i2

拡張子htmlをejsとして実行する方法

https://stackoverflow.com/questions/21922854/change-ejs-extension-to-html-using-parse-com-express-js?utm_source=pocket_mylist

EJS内で直接モジュールをrequireできないらしいので、server.jsでModuleを追加できるようにしました

元記事を表示

CoinCheck API を TypeScript + Node.js で書いてみる

# About

何故か CoinCheck API の example に Node.js が無いので簡単な API クライアントを TypeScript で書いてみました。

# Main Code

各種モデルとインフラストラクチャ(CoinCheck class)を1コードにした形で示します。

“`CoinCheck.ts
/**
* 相場情報(簡易版)
*/
class Ticker {
last?: number // 最後の取引価格
bid?: number // 現在の買い注文の最高価格
ask?: number // 現在の売り注文の最安価格
high?: number // 24時間での最高取引価格
low?: number // 24時間での最安取引価格
volume?: number // 24時間での取引量
timestamp?: number // 現在の時刻
}

/**
* 残高
*/
class Balance {
success?: boolean // 成功フラグ

元記事を表示

あの最強ハッカー「ウォールナット」の七つ道具の一つ「Internet Automatic Search Program」がGithubで公開されている件

# ウォールナットって?
リコリス・リコイル(以下、リコリコ)というアニメに出てくる金髪ロリ美少女最強ハッカーです。
本名はクルミちゃんといいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1135021/96fe1c3b-fcf3-42d4-26ab-6ad9ed3319ea.png)

# Internet Automatic Search Programって?
そんな超絶かわいい個人的最推しキャラのクルミちゃんが第7話で見せた七つ道具の一つがInternet Automatic Search Programです。
インターネッツの海から一瞬で目当てのものを自動検索してくれるプログラムみたいですね。
検索しても出てこない情報を探せるのだとか。ダークウェブっぽくてハッカー感ありますね
### 余談
ダークウェブって呼び方よりもウラインターネットとかのほうがしっくりくるのは私だけでしょうか(エグゼ世代)

# プログラム考察
私はアニメに出てくるソースコードは読んでしまう病に罹って

元記事を表示

WARN Address localhost:8080 is already in use.の解決策

サーバー起動時に

“`
WARN Address localhost:8080 is already in use.
“`

と出た場合は、すでにそのポートが使用されています。

## 解決策

“`
lsof -i -P | grep 8080
“`
でそのポートを使用していないか確認。

“`
kill PID(プロセスID)
“`
上記コマンドで消去できない場合は
“`
kill -9 PID(プロセスID)
“`
`-9`を使用して強制終了します。

https://amateur-engineer.com/port-process-kill/

元記事を表示

D3.jsとGridDBによる気象データの可視化

今回は、GridDBを使って気象データを可視化・分析する方法を紹介します。CSVファイルで提供されているデータセットをGridDBにロードし、GridDBからデータを取得してデータ分析を行います。気象データセットを使用します。

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

## GridDBにデータをロードし、GridDBからデータを取得する

“`javascript
var griddb = require(‘griddb_node’);

const createCsvWriter = require(‘csv-writer’).createObjectCsvWriter;
const csvWriter = createCsvWriter({
path: ‘out.csv’,
header: [
{id: “DATE”, title:”DATE”},
{id: “WIND”, title:”WIND”},
{id: “IND”, title:”IND”},
{id: “RAIN”, title:”RAIN”

元記事を表示

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

元記事を表示

OTHERカテゴリの最新記事