- 1. UnityとFirebaseでDAppsゲームを作る
- 2. npmってなんだ
- 3. ノンビン塾~エンジニアとしての成長記録6~
- 4. Node.jsでAPIを呼び出すときの同期処理のメモ
- 5. [Lambda]s3.putObjectが初回実行時に完了しない時の対処法
- 6. Hello Deno
- 7. expressのrouterをroute出来るの???
- 8. Discord.jsで音楽BOTを作る
- 9. Yarnのインストール方法(Mac)
- 10. `npm install` でエラー|Ubuntu on WSL1, in Another Drive (/mnt/g)
- 11. Node.jsを過去の物にする最速の肉まん
- 12. discord.jsでGlobalBanを作る
- 13. textlintのセットアップ&使い方
- 14. API Gateway、Lambda(Node.js)、DynamoDB を使ったAPIの作り方
- 15. asdfインストール中に書いた備忘録
- 16. 銀行振込やカード決済に対応した請求書を、StripeのAPIを利用して作成する
- 17. Node.js Expressでlog4jsを使ってログ出力するmiddleware(logger)を組み込んでみた
- 18. Discord.jsでNitroのURLを生成する
- 19. Discord.jsでQRコードを生成してみた。
- 20. node-ibm_dbをnpm installするときDb2のCLI Driverのダウンロードがこける
UnityとFirebaseでDAppsゲームを作る
# はじめに
### 今回作ったもの
Symbolブロックチェーン上のウォレットとchrome拡張のSSS_Extensions(以下SSS)を利用したユーザー認証でプレイできるゲーム
ゲーム内容はハイアンドローみたいなものhttps://halad-dev.com/
SSSの追加はこちらから
https://chrome.google.com/webstore/detail/sss-extension/llildiojemakefgnhhkmiiffonembcan
## 概要
#### 環境
– Firebase (Auth, Functions)
– Unity 2021.3.4f1 (WebGL)
– UniTask
– Symbol ブロックチェーン
#### DAppsゲームとは?
この定義は人によって分かれると思うが、この記事ではブロックチェーン用のウォレットを使ったユーザー認証を行うゲームと定義してます。例えるならば
![SSS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c
npmってなんだ
# はじめに
本記事では**npm**と**その周辺の知識**をまとめたものになります。
なんとなく使っていたのでこの機会に学び直してみました〜〜:hatching_chick:# ①npmとはなんだ
* Node.jsの**パッケージ**を管理するツール。
* Node.jsに組み込まれているので、`brew install node`でNode.jsをインストールすればnpmも一緒にインストールされる。# ②パッケージとはなんだ
* package.jsonに記述されたファイルやディレクトリのこと。
* モジュールが誕生した(細かく機能を分けて開発できるようになった)ことにより、**よく使う機能を再利用できるようにしたもの**。1から機能を作らなくても良いので効率良く開発することができる。
* パッケージを一言でまとめると、**再利用できる機能の塊。**![package.png](https://qiita-image-store.s3.ap-northeast-1.
ノンビン塾~エンジニアとしての成長記録6~
## ノンビン塾について
そもそもノンビン塾ってなに?
→[過去の記事参照](https://qiita.com/kenny_engineer/items/fc3a45ef2c123ce49495)## 今回の講義
#### 【テーマ】
配列・オブジェクト(連想配列)を理解しよう!
※ノンビン塾で学んだ事 と 自分で自習した事 を纏めて記載する#### 【事前準備】
・Node.js(v16.14.2)
・VSCode
・適当なディレクトリでtest.jsを作成する### 1)配列について
【複数のデータを順番に並べた構造の事】であると理解した。
1つの箱(変数)に同じデータ型の複数の値を入れる事ができる。また、配列は、`[ ]` で囲まれている。
そして、目的のデータが「何番目にあるのか」を指定すると、
そのデータを取り出すことができる。以下例
“`test.js
const list = [“1個目”, “2個目”, “3個目”];console.log(list);
“`
上記のようにlistを宣言し、console.logで確認して
Node.jsでAPIを呼び出すときの同期処理のメモ
毎回、同期処理で悩みます。
Promise とか async とか意味わからんし・・・。
用語の意味から混乱します。
同期処理は、最初のコードから次のコードへと順次処理(実行)されていくこと。
非同期処理は、ある処理が終了するのを待たずに、別の処理を実行すること。
今日は冷静になって、同期処理を研究してみました。
私はど素人なので、もっといい方法があれば教えてください。## APIを呼び出すときの同期処理の研究
### 利用API
気象庁のAPIからデータをとる事例でいろいろ試してみました。
https://www.jma.go.jp/bosai/forecast/data/overview_forecast/340000.json
こんなJSONファイル
“`
{
“publishingOffice”:”広島地方気象台”,
“reportDatetime”:”2022-07-09T21:27:00+09:00″,
“targetArea”:”広島県”,
“headlineText”:””,
“text”:” 中国地方は、湿った空気の影響で概ね曇
[Lambda]s3.putObjectが初回実行時に完了しない時の対処法
AWS SDK for JavaScriptのs3.putObjectが、1回目は通らないのに2回目は通るという事態が起きました。
結論から言うと、promiseを返していなかったことが原因でした。だめだったコード
“`
s3.putobject({
Body: {body},
}, function(err, data) {“`
Hello Deno
最近、Denoの動向をzennやtwitterで目にする機会が増えてきた実感があって、
azukiazusaさんの [Deno の Web フレームワーク Fresh チュートリアル](https://zenn.dev/azukiazusa/articles/fresh-tutorial) の記事や
日野澤歓也さん(@kt3k)の[Deno入門 ─ 新しいTypeScript/JavaScript実行環境でWebアプリ開発とデータベース接続の基本を体験しよう](https://eh-career.com/engineerhub/entry/2022/06/17/093000) の記事の影響で、Denoに入門してみました。#### Denoとは?
Node.jsの作者のライアン・ダールが、2018年に開発を開始したサーバサイドJSのランタイムで、2020年にv1.0がリリースされています。
現状、サーバサイドJSのランタイムとして、Node.jsがデファクトスタンダードとなっていますが、
Denoが生み出された理由は、ライアン・ダールが、いくつかNode.jsの設計に後悔している点が
expressのrouterをroute出来るの???
# 疑問
expressのexpress-generatorというのはご存じでしょうか。
そのexpress-generatorで出てくる雛形はexpressのお手本のようなプログラムをしており、そこからプログラムを書いていくと、なかなか綺麗にまとまったプログラムが出来上がります。
そこで“`javascript
var express = require(‘express’);
var indexRouter = require(‘./routes/index’);
var app = express();//これのこと
app.use(‘/index’,indexRouter);
//これのこと
“`という感じのメソッドが存在します。
これのおかげでプログラムを小分けにしてURLのディレクトリ毎のプログラムを書くことが出来るのですが、中にはexample.com/usersではなく、example.com/users/tanakaみたいなディレクトリを小分けにしたいこともあるでしょう。
細分化したURLに対応するすべてのroute関数を定義していくと、r
Discord.jsで音楽BOTを作る
# Discord.jsで音楽BOTを作る
今回はDiscord.js(v13)を使い、音楽BOTを作っていきます
npmのバージョンはできるだけ最新のものにしておいてください
本記事のサンプルコードを利用して生じた損害については一切責任を負いません
では作っていきましょう!
# 用意するもの
Node.js v16(推奨)
Discord.js v13(自分の環境はv13.7.0で行いました)
@discordjs/opus v0.7.0
discord-music-player v8.3.2
lyrics-finder v21.7.0
yt-search v2.10.3
**コマンド**
`npm i discord.js @discordjs/opus discord-music-player lyrics-finder yt-search`
# サンプルコード
“`js
const { Client, Intents, MessageActionRow, MessageSelectMenu, MessageButton, Modal, TextInputComponent }
Yarnのインストール方法(Mac)
## はじめに
`yarn` コマンドを実行したら、以下のエラーが発生しました。
“`shell-session
$ yarn
bash: yarn: command not found
“`## 環境
– OS:macOS Monterey 12.4
– Node.js:v16.15.1## 原因
Yarnはサードパーティ製のCLIツールであり、Node.jsにはプリインストールされていないためです。
## 解決策
npmでインストールすればOKです。
“`shell-session
$ npm install yarn –location=globaladded 1 package, and audited 2 packages in 377ms
found 0 vulnerabilities
$ yarn –version
1.22.4
“`私はNode.jsをnodebrewで管理しているので、yarnをグローバルインストールしました。
これでプロジェクト配下のみでなく、Node.jsの同じ環境を使うときには常にパスが通ります。
`npm install` でエラー|Ubuntu on WSL1, in Another Drive (/mnt/g)
# `npm install` でエラー
## System
– Ubuntu 20.04.4 LTS
– WSL 1
– nvm 0.35.2
– nodejs v16.16.0
– `which node`の結果は `~/.nvm/versions/node/v16.16.0/bin/node`
– npm 8.13.2
– `which npm` の結果は `~/.nvm/versions/node/v16.16.0/bin/npm`## Issue
### Run Out of Home Directory
`/mnt/g/`下にgitでnodejsプロジェクトを持ってきて
“`bash
cd /mnt/g//
git clonecd npm install
“`としたらめっちゃエラーが出てきた。
“`output
npm ERR! code EPERM
npm ERR! syscall symlink
npm ERR! path ../pr
Node.jsを過去の物にする最速の肉まん
# その名はBun
デデン
![Screen Shot 2022-07-08 at 10.24.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656202/f2d3c457-a1f8-bb54-45a3-635407693939.png)[Bun](https://bun.sh/)はNode.jsやDenoのようなJavascriptランタイムです。(2022/7/8現在ベータ版)
ちなみにロゴが本当に肉まんなのかはわかりません。(赤ちゃんの頭にも見えるけど名前がBun/パンだしなぁ…)
この記事ではNode.jsやDenoと比較をしつつ、bunの解説させていただきます。
# 割となんでもできる
Bunはただのランタイムではありません。下のように、開発に必須の多くな機能を最初から有しています。– TypescriptからJavascriptへのトランスパイル
– jsxからJavascriptへのトランスパイル
– npmのようなパッケージのインストール&管理
– web
discord.jsでGlobalBanを作る
# はじめに
環境
nodejs v16.15.1
discord.js v13.7.0
エディター : Visual Stadio Code著者は上記の環境でテスト、実行しています
上記以外のバージョンでのテスト、実行はしていないのでご了承下さい# 動機
**私はGlobalBanがしたい!!!!**
私が作成しているbotは地道に導入数を増やし今は導入数150。
150サーバーにも入っていると私の方にも荒らしやdiscordの規約違反をしているユーザーの通報がちょくちょく来ますそろそろ荒らしへの処置をしてもいいのではないか!?
という流れで私はGlobalBanのコードを作成すると決めました。# コード
“`config.json
{
“token” : “token”,
“prefix” : “!”,
“admin” : [“自分のid”]
}
“`“`index.js
const {
Client,
MessageActionRow,
MessageSelectMenu,
MessageBu
textlintのセットアップ&使い方
## 「textlint」とは?
Node.js製の自然言語リンターです。
ルールは1つもバンドルされておらず、様々なルールを自分でインストールして使うのが特徴です。## 環境
– OS:macOS Monterey 12.4
– Node.js:v16.15.1
– textlint:v12.2.1## セットアップ
textlintやルールをセットアップします。
### textlint
まずはtextlint本体をセットアップします。
https://github.com/textlint/textlint
#### インストール
textlintはNode.js製なのでnpmでインストールします。
“`shell-session
$ npm install textlint –save-dev
“`私はローカルにインストールし、 `npx` を付けて実行しています。
グローバルにインストールする場合は `–location=global` を付けてください。開発時のみ使うので `–save-dev` を付けています。
#### 設定
API Gateway、Lambda(Node.js)、DynamoDB を使ったAPIの作り方
API Gateway、Lambda、DynamoDB を使ったAPIの作り方を備忘録も兼ねて記載します。
プログラム言語にはNode.jsを利用します。# システム構成
システム構成は以下のようになります。
![AWS.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348676/d172c951-87f7-ef41-4bb4-cf660f65d99b.png)# システム概要
今回はサンプルとして、DynamoDBに格納されているイベント情報をPOSTリクエストで取得して、Jsonを出力するAPIを作ります。# 1. DynamoDBにテーブルを作成
最初にイベント情報を格納するテーブルを作成します。
![dynamodb1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2348676/c813f1e4-6c70-8b35-a53a-57a532ede10a.png)テーブル名は **event**、
asdfインストール中に書いた備忘録
# はじめに
ここと最後の「おわりに」は備忘録を書いた後の追記です。備忘録だけでは伝わらないかなーと思ったので、色々と書き足しておきます。
私の環境:
– M1 MacBook Air
– シェル: Zsh
– [Oh My Zsh](https://ohmyz.sh/)使用
– バージョン管理ツール: [Homebrew](https://brew.sh/index_ja)この備忘録を書くに至った流れ:
1. HomebrewでNode.jsのバージョン管理するの難しいな
1. asdfっていうのあるらしいね
1. 触ってみるか
1. いつでも消せるように備忘録書こうそれではお楽しみください。
# asdf触ろう
entrypoint:
– [asdf-vm/asdf: Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more](https://github.com/asdf-vm/asdf)
– [Getting Started | asdf](ht
銀行振込やカード決済に対応した請求書を、StripeのAPIを利用して作成する
会社や個人事業を営む中で、欠かすことのできない業務の1つが「請求業務」です。
請求書を発行して顧客に送付し、入金ができたかの確認や支払い方法の変更相談に対応する、etc…
これらの業務を効率化するために、システムを利用したり開発している方も多いのではないでしょうか。
今回の記事では、Stripe APIを利用した請求書の作成・送付方法について紹介します。
## 請求書を発行するコードの実装方法
まずは請求書を作成する部分のコードです。
### Step1: Customerデータを作成する
まずはStripeに顧客データを登録します。
このとき、以下の情報が最低限必要です。|データ|必須|用途|
|:–|:–|:–|
|Email|必須|請求書のメール送付などに利用します|
|請求先住所|Taxを使っている場合必須|Taxによる税額計算に利用します|“`js
const customer = await stripe.customers.create({
email: ‘text@example.com’,
// Str
Node.js Expressでlog4jsを使ってログ出力するmiddleware(logger)を組み込んでみた
## はじめに
アプリケーションの開発時にはlog出力は必須となると思います。今回は、そのlogの種類としてはどんなものがありその役割は何か?を理解しつつ、実際にlogger(アプリケーションログ出力用、アクセスログ出力用)を作成していくという事をやってみました。ソースコード全体は以下。
https://github.com/yuta-katayama-23/post-restaurant-reviews/commit/cc3a7131cad714f6e3a95e5c81ce4adf78f6c6aa
https://github.com/yuta-katayama-23/post-restaurant-reviews/commit/6175b44c94e97f35668a5df2f521c26e53b2ceb3
## ログ出力するmiddlewareを実装する
### 結論
※以下ではES Modulesを利用しているが、ES Modulesを利用しない場合には、importの部分を”const appRoot = require(‘app-root-path’);”にするな
Discord.jsでNitroのURLを生成する
discord.js-nitroというパッケージを使ってNitroのURLを生成するコードを書いてみた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708157/ed47c2fa-e469-6644-b53d-70588615c9e4.png)【開発環境】
・Discord.js v13 (v12も可)
・Node.js v16.x以降(v13の場合)【必要な物】
・Dicord.js v13 (v12も可)
・discord.js-nitro“`index.js
client.on(‘messageCreate’, async message => {
if (message.content.startsWith(‘t!nit’)) {
const nitro = require(‘discord.js-nitro’);
const boost = false;//クラシックニトロ
message.channel.send(`${nit
Discord.jsでQRコードを生成してみた。
qrcodeというnpmのパッケージを使ってBotが与えられた情報からQRコードを生成する
コマンドを作ってみたよ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2708157/7ed53fbe-6566-b13e-6bfc-fc4ce77df8ec.png)【開発環境】
・Discord.js v13 (v12も可)
・Node.js v16.x以降(v13の場合)【必要な物】
・Dicord.js v13 (v12も可)
・qrcode“`index.js
client.on(‘messageCreate’, async message => {
const QRCode = require(‘qrcode’);
if (message.author.bot) return;
if (message.content.startsWith(‘s!qr’)) {
//splitでユーザーのメッセージを取得し、それをqr.pngへ出力する
QR
node-ibm_dbをnpm installするときDb2のCLI Driverのダウンロードがこける
# 事象
Node.jsのアプリからDb2に接続するため、[node-ibm_db](https://github.com/ibmdb/node-ibm_db)をインストールしようとしたところ、下記のエラーが発生しました。
Db2のCLI Driverをダウンロードしようとして失敗しているようです。“`
> node installer/driverInstall.jsplatform = darwin, arch = x64, node.js version = v12.0.0
make version =GNU Make 3.81****************************************
You are downloading a package which includes the Node.js module for IBM DB2/Informix. The module is licensed under the Apache License 2.0. The package also includes IBM ODBC and CLI