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

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

AWS SDK V3 のDynamoDBで、いくつか動作確認した話(AWS SDK V2 → V3 移行Tips)

# はじめに

https://qiita.com/Syoji_Yonemoto/items/e619d8199b7c8354248f

V3移行の動作確認の初手に、Firehoseを選んだせいかもしれないですが、V2で使ってたメソッドの互換があるか保証がないことが分かったので、普段、Lambdaで利用するAPIについては一通り、動作確認をしていっています。

今回は、DynamoDB編です。

# 結論

DynamoDBに関しては、私が普段使うメソッド群については、問題ありませんでした。

# V2 と同じ使い方で問題なく動作確認できたメソッド

+ putItem
+ batchGetItem
+ query
+ updateItem
+ updateTable

# 余談
性能試験や、TTL未実装の時などには、createTableやdeleteTableも実行していた時もありましたが、日常的に使う物でもなく、その時がきたら追試をします。

# まとめ
DynamoDBくらい主要どころになると、しっかり下位互換もされているようです。
引き続き、小ネタシリーズとして、

元記事を表示

Deno を使って Node でも Deno でも動くライブラリを作る

Deno アドベントカレンダー 24日目の記事です。

今日は Deno を使って Node でも Deno でも動くライブラリ(もしくはツール)を作成する方法を紹介します。

Deno 界隈では最近 npm 互換性機能がリリースされて、Deno から使えるツールが一気に増えたということで話題になっていますが、逆に Deno で作ったツールを Node/npm に対応させるという逆向きの互換性についても開発が進んでいます。

この記事では、Deno が公式で提供している [dnt](https://github.com/denoland/dnt) というツールを使う方法を紹介します。

https://github.com/denoland/dnt

dnt を使った場合の、Node と Deno 両対応の主な流れは次のようになります。

– まずは Deno で動くようにツールを作る (Deno に対応)
– dnt を設定して、ツールのエントリーポイントを Node 用に変換出来るように準備する
– dnt を実行して Node 用モジュールを指定のディレクトリに書き出す
– 書き

元記事を表示

誰でも作れるBetterJSONトランスパイラを作ってみる

# 概要

(厳密な)JSONはイメージとは裏腹に手で書くには思ったより不便な仕様になっています。

– コメントが書けない。
– Trailing comma(末尾のカンマ) は認められていない。(=手で追加する際にカンマを意識する必要が出て面倒)
– (ダブルコーテーションの代わりに)シングルコーテーションは使えない。
– キー名もダブルコーテーションで囲む必要がある。

などなど・・・

というわけで、JavaScriptのオブジェクト表記のようにゆるく書けてなおかつそのままJSONに変換できるトランスパイラを作ってみる。

# 誰でも作れる

ちょこっとコードを付けて`eval(new Function)`して`JSON.stringify`で出力するだけです。

node.jsなら追加のモジュール一切不要で実現できます。

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

if(process.argv.length < 3) { const path = require('path'); jsfile = path.basenam

元記事を表示

TypeScriptでサーバーもフロントも書いてGraphQLするやつアドカレ25記事書ききった

[Next.js + サーバーサイドTypeScript + 関数フレーバーでクリーンなアプリを作ったので実装意図とか書く Advent Calendar 2022](https://qiita.com/advent-calendar/2022/shwld)
の**25日目**。[株式会社mofmof](https://www.mof-mof.co.jp/)に生息している[shwld](https://twitter.com/shwld)です。

前日は[Next.jsとgraphile-workerをRailwayにデプロイする](https://qiita.com/shwld/items/49a310aadc0a34e2a721)について書きました
# TypeScriptでサーバーもフロントも書いてGraphQLするやつアドカレ25記事書ききった

25記事を書ききったので、ふりかえって感想を書きます。

## 良かったこと
学んだ内容を無理やりアウトプットできた。
アドベントカレンダー25日分最初に埋めたので後戻りできないなという気持ちに
普段アウトプットあんまりしてないのでい

元記事を表示

ゆるやかにオンプレAPIをNestJS on ECSに移行して

この記事はアイスタイル [Advent Calendar 2022](https://qiita.com/advent-calendar/2022/istyle) 25日目の記事です。

# はじめに
じゃんたま 雀士★1になりました。
はじめまして、アイスタイルT&C部に所属している[okashitay](https://qiita.com/y_okasuke)というものです。

今回の記事では、こないだまでNestJSどころかNode.jsアプリケーションでの開発実績も特別ない者でしたが、ここに実体験を元に知見をいくつか残していこうと思います。

# NestJS採択の経緯
商品データ基盤APIは何らかの事情でPHP版とGO版が存在しています。
両方とも言語・フレームワークともEOL(End Of Life)に近い状態…2つのAPIのバージョンアップしつつAWSへ移行する労力、2種類の言語のAPIに機能追加・メンテナンスしていくことは開発者の負荷とAWS移行コスト&運用コストも高まるという状況を解消するため1つの言語に統一する方針へ、言語とフレームワークの最終的な決め手は公式ド

元記事を表示

Yarnのバージョンによってnode_modulesが作成されない件について(voltaを使用)

## 起こった現象
* voltaでNext.jsの環境構築をした時、自動で作成されるindex.tsxで、import部分にエラー
* 「対応する型が見つかりません」ってずっと出る?
* node_modulesフォルダではなく、**「.yarn」フォルダが作成される**

## 早速ですが結論から
エラーが起きた原因は、やはり**node_modulesが作成されていないから**みたいです

すごくシンプル

本来は作成されるはずなんですが、なぜ作成されなかったか追っていきましょう!

## yarnのバージョンを確認
まずはyarnのバージョンを確認してみました

yarn -v
// 3.3.0

バージョンは3.3.0と確認できました

yarnは、Home Brewで既にinstall済みの状態です

今回使用したかったバージョンは「1.22.19」だったので、voltaでyarnのバージョンを指定してみました

エラーが起こる段階でyarn installした時は、voltaにyarnのバージョンはしてしてなかったです

“`package.js

元記事を表示

キャンパス内の独自通貨をオンライン化した話

# はじめに
この記事は、[N・S高等学校 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/n-s-highschool)の25日目です。
はじめまして、N中等部通学コース4期生のTakuといいます。
今回は、キャンパス内で使われている独自通貨「吉」をオンライン化してみた話を書きまとめてみました。
ぜひご覧ください。
# 独自通貨とは
まず最初に、キャンパス内で実装されている独自通貨について説明していきます。
test.jpeg
上の画像が紙幣の独自通貨で、一ヶ月に一回紙幣のデザインが変わっています。
# 完成品
できたものについて紹介します。
## Web UI
ys.pngUbuntu22.04でのMineOS環境構築

# 初めに
MineOSというMineCraftサーバー管理ツールをご存じでしょうか?
WebUI上からサーバーの新規作成、起動、停止、定期バックアップなどいろいろできる便利ツールです。
昔から利用しているのですが毎回構築するたびにやり方を忘れるのでメモ程度に手順を残しておきます。

以下公式サイト
https://wiki.codeemo.com/

# 環境
今回はESXi8.0上のVMに構築
|項目|詳細|
|–|–|
|OS|Ubuntu22.04LTS|
|CPU|6vCPU|
|RAM|30GB|
|Storage|SAS HDD 100GB|

# 構築
基本的には公式ドキュメント通りに進める
## UbuntuOSのインストール
割愛

## curlのインストール
“`shell-session
user@localhost:~$ sudo apt -y install curl
[sudo] password for user:
Reading package lists… Done
Building dependency tree… Done
Re

元記事を表示

AppsFlyer Push APIからのJSONデータを、Cloud Functionsで受け取り、Cloud Firestoreに流し込むまで

## 自己紹介
AppsFlyerというモバイル広告計測ツールの会社のソリューションアーキテクトです。前職ではIBMでデータエンジニアをやっており、DWHの構築などをネットワークやOSレベルのインフラレベルのこともやっていましたが、基本的にはオンプレだけでしたので、Google CloudやAWSのことをキャチアップしたいと考えているところです。

参考: [AppsFlyerとそのアトリビューションの仕組み](https://qiita.com/maktag/items/0a6d9a3969393aa8dcb4)

AppsFlyerは計測ツールですので、そのローデータをお客様側に持ち出していただいて保管・分析いただくことは通常のユースケースになります。その連携方式の一つがPush APIという機能で、AppsFlyerから発生したイベントをリアルタイムで指定のエンドポイントにデータを送信できるというものなのです。

ただ、対面のお客様はエンジニアではなくマーケターの方だったりしますので「エンドポイントってそもそも何?」というような質問を多々受けることもあります。

「Googl

元記事を表示

ワンコマンドで立ち上がるDApp開発環境をDockerで生成する(Truffle&Ganache)

# はじめに
DApp開発を学習するうえで簡易なものを作ってみようということで、環境構築から。
思っていたよりも簡単にできた。

WSL2&docker環境を想定。
dockerの使い方的な説明には触れない。

## 完成品のリポジトリ

https://github.com/PokoPoko2ry/dapp-sample

# 環境概要
Dockerでワンコマンドで立ち上がるよう各コンテナの定義をする。

調べてみると、Solidity開発ならフレームワークとしてTruffleと
ローカルのブロックチェーンネットワークにGanacheがよいということで
これらを利用した環境を作成してゆく。
最終的な構成はこのような形

“`
.
├── app
│ ├── build
│ │ └── contracts
│ │ ├── ConvertLib.json
│ │ └── MetaCoin.json
│ ├── contracts
│ │ ├── ConvertLib.sol
│ │ └── MetaCoin.sol

元記事を表示

【完走賞ゲット-24】OpenAI の ChatGPT の API を公式ライブラリの JavaScript版 を試す(使い方を ChatGPT に聞いてみたりも)

## はじめに
こちらは、[完走賞ゲットのため小ネタを毎日投稿しようとチャレンジする Advent Calendar 2022](https://qiita.com/advent-calendar/2022/youtoy) の 24日目の記事です。

今月のアドベントカレンダー用記事で、以下の 3記事で扱った OpenAI の ChatGPT の話です。

– [【KDDI Engineer&Designer】AI にブラウザ用の JavaScript のプログラムをいくつか作ってもらった話 ⇒ OpenAI の ChatGPT で生成されたプログラムの解析も少々 – Qiita](https://qiita.com/youtoy/items/8eacb1af28ac18301b74)
– [【完走賞ゲット-4】続・OpenAI の ChatGPT のネタ:JavaScript の特定の技術仕様を教えてもらう – Qiita](https://qiita.com/youtoy/items/a4d9f3b0736475d0770a)
– [【enebular 2022】ChatGPT用ノ

元記事を表示

ReactとGraphQLを使って作るTODOアプリ

# はじめに

こんにちは,ペンギン丸です.学生兼フロントエンドエンジニアをしています.
本記事は私が来年からお世話になるDMM様の23卒アドベントカレンダー24日目です.

何か書けるような技術無いかな〜っと考えたところ何も思い浮かばなかった為,
逆に全然分かってない技術(GraphQL)を使ってTODOアプリを作ることにしました.

最近はお絵かきにかまけて技術の勉強をしてなかったので,手を動かして行きます!
# 本記事の目標

「GraphQL? 何それ美味しいの?」って方でも
この記事通りに作業すればGraphQLを用いてTODOアプリが作れてしまい,何となくGraphQLが分かった気になれることを目標にします.

GraphQLそのものに関する説明や,細かな用語の説明は他の方の記事に任せ,なるべく少ないコードで必要最低限のTODOアプリが作れたら良いなと思います.
張り切って行きましょう!

# 前提条件
Node.jsとnpmは既にインストールされている前提で作業します.
また,本記事の大部分はApolloの公式チュートリアルを参考にしています.

https://apo

元記事を表示

Node.js ってなんだ?

「Node.js って結局なに?」
って急に聞かれても答えられない気がします。

私は Node.js = JavaScript をサーバーで動かす環境、くらいの認識だったのですが、きちんと調べてみると間違っていたのでまとめていきます。

## Node.js とは

[公式ドキュメント](https://nodejs.dev/en/learn/) には以下のようなことが書かれていました。

– JavaScript の実行環境
– 拡張性の高いネットワークアプリケーションを構築できる
– Google Chrome のコアとなっている、(高速に動作する) V8 エンジンをブラウザの外で動かすことで高いパフォーマンスを実現している
– ほとんどの種類のプロジェクトに対応できる
– クロスプラットフォーム
– オープンソース
– スレッドを複数立ち上げることが重大なバグの原因となるため、シングルプロセスであり、非同期処理に対応
– JavaScript を書いていた人にとっては別言語を勉強せずにサーバーサイドの開発ができるメリットがある
– ブラウザのアップデートを待たずに新しい ECM

元記事を表示

PostgreSQL/PostGIS データベースからnodejsでデータを読み込む(pgモジュール)

# はじめに
これまで使っていたベクトルタイル作成のプログラムについて、nodejsのバージョンアップが必要なこともあり、主要なnodejsモジュールがnodejs v18でも動くか試してみる必要がありました。

この機会に、改めてPostgreSQL/PostGISからのデータ読み込み、GeoJSON sequenceでの書き出しについてメモを書いておこうと思ってこの記事をまとめました。

今回の練習レポジトリはここです: https://github.com/ubukawa/ex-postgis

なお、現在、実際に動いているプログラムはnodejs v.16で動かしていますが、レポジトリはここ https://github.com/unvt/produce-gsc-6 にあります。このプログラムは @hfu さんの開発をベースにしています。

## 注意点
今回の練習用では、pgモジュールをつかってPostgreSQLデータベースでのアクセスするところを中心にみるため、childプロセスを使ってベクトルタイル変換ツールにデータをパイプすることや、better-queueを使って

元記事を表示

web-ifcでIFCファイルを読み込む

# はじめに

[前回の記事](https://qiita.com/kiyuka/items/00434f1b8e0b38c621fb)ではIFCファイルのテキストを見て手作業で解読しました。まあなんというかとてもめんどくさい作業でした。~~もうやりたくないです。~~
そんなわけで今回はJavaScriptライブラリの [IFC.js](https://ifcjs.github.io/info/) を使って解読していきたいと思います。

# IFC.js とは

IFC.jsが何かというと、[公式ドキュメント](https://ifcjs.github.io/info/ja/docs/Introduction)より

> IFC.jsは、IFCファイルの読み書きを非常に簡単に行うことができるJavaScriptライブラリです。

とのことです。わざわざ手作業でIFCファイルを読み解く必要はないってことですね!やったー!!

# web-ifcでファイルを読み込む

IFC.jsは `web-ifc`, `web-ifc-three`, `web-ifc-viewer` の3つのレイヤー

元記事を表示

彼女の怒りを早急に鎮火。むしろ怒りを遊びに転換したい。〜obnizで早押しゲームつくり〜

# 続・彼女のブチギレ案件

どうもこんにちは。
以前、トイレの蓋を閉め忘れて彼女にブチギレられたので、obnizでアラート機能をつくった者です。

https://qiita.com/atoms50/items/81a401fa705937746900

その後、トイレの蓋の閉め忘れはなくなり、トイレ文脈で彼女にキレられることはなくなりました。
一方で、これは根本的な解決ではありません。
彼女がブチギレる火種は生活の中に溢れているのです。
最近だと、こんな事象が発生し、ブチギレられてしまいました。
– 氷結とスルメイカの食べ残しを机に放置してブチギレられたり
– プレゼントでもらった財布をタクシーに置き忘れてブチギレられたり

毎度毎度、事象に対して対策をあてていってもキリがありません。
なので、今回は彼女のブチギレに対して根本的な解決をはかりました。

# 彼女の怒りの鎮火作業は「業務」
僕にとって、彼女の怒りを鎮火する行為は「業務」です。
鎮火作業において最も重要なことは、炎上する前に、火種を消すことです。
炎上してしまったら最後、取り返しがつかないことになってしまうからです。

元記事を表示

Playwright と Artillery によるパフォーマンステスト

# 要約

– DevOps や SRE を実践する人向けに、Playwright による E2E テストを Artillery の負荷掛けシナリオとして利用する手法についてハンズオンを交えて紹介します。
– 課題としては、Playwright で自動生成したスクリプトを手直ししないと難しいパターンがあることを挙げています。
– その他、Tips もあります。

# はじめに

[NSSOL Advent Calendar 2022](https://qiita.com/advent-calendar/2022/nssol) の 13 日目にも[投稿](https://qiita.com/BlueTofuchic/items/57e54875d6f45eccb28c)しました、とうふです。
先の記事で軽く説明した通り、私がいま参画している案件では
> E2E テスト用のスクリプトを流用したパフォーマンステスト

を行なっています。
本記事では、Playwright で作成した E2E テストスクリプトを使って負荷掛けを行うことでパフォーマンステストを実施する手法について紹介します。

元記事を表示

Discord jsの最小構成(メモ)

最近またDiscord jsにハマり出したのでメモとしてコードを貼っておきます

discord jsをインストールするコマンド:
“`powershell
npm install discord.js
“`

dotenvをインストールするコマンド:
“`powershell
npm install dotenv
“`

bot本体
“`index.js
const { Client, GatewayIntentBits } = require(“discord.js”);
require(‘dotenv’).config();

const GatewayIntents = [GatewayIntentBits.MessageContent];

const client = new Client({
intents: GatewayIntents,
});

client.on(“ready”,(client)=>{
console.log(“Ready!”);
});

client.login(process.env.TOKEN);

“`

元記事を表示

LINE チャットボットと IBM Cloud Functions でアルバイトのシフトを管理しよう

# はじめに

勤務時間がシフトで決まっている業務に携わっている方(アルバイトなども含みます)、自分のシフトの時間管理はどうしているでしょうか?

働く世代にはほぼスマホが1人1台ずつ行き渡っている現在では、カレンダーアプリなどを使って手動で登録している方や、あえて紙の手帳などに記入している方も多いと思います。

この記事では、自分のシフトの予定を Google カレンダーに自動登録してくれる LINE のチャットボットを個人使用目的で開発します。バックエンドには IBM Cloud Functions を使用します。

# 用意するもの

– LINE アカウント
– IBM Cloud アカウント (無料の範囲内で作成できます)
– Google アカウント (Gmail のメールアドレスがあれば OK)
– アルバイトのシフト表や習い事のスケジュール表(全部または一部が Google カレンダーに登録してあるとします)

【注意点】今回作成するアプリ(LINE チャットボット)は、自分または家族などに割り当てられたアルバイトのシフトや習い事のスケジュールを管理するための、個人での

元記事を表示

React Native + Expoでのアプリ開発入門

# React Native + Expoでのアプリ開発入門 -setup編

React Nativeでアプリ開発をやってみます。
環境構築してみました。

環境:
MacBook (intel)

## homebrewのインストール
[Homebrew公式](https://brew.sh/)

インストールコマンド
“`
/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`

## Nodejsインストール
[Nodejs公式](https://nodejs.org/)
公式からもインストールできますが、homebrewからもインストール可能です。

“`brew install node“`

## Watchmanインストール
[watchman公式](https://facebook.github.io/watchman/)
フォルダやファイルを監視して、変更などがあったらリビルドなどのアクションするツールです。

“`

元記事を表示

OTHERカテゴリの最新記事