- 1. 動的に.protoファイルを読み込む@grpc/proto-loaderを利用して、Node.jsでgRPCを動かしてみた
- 2. discord.js v14を使用した簡単な応答botの作り方
- 3. npmについてくるnpxコマンドをもっと活用しようぜ
- 4. Super! Build a simple Nuxt.js environment.
- 5. 超!シンプルな Nuxt.js の環境を構築する。
- 6. Lambda – RDS Proxy(TLSあり) – Auroraの構成でRDS(Aurora)に接続する
- 7. Azure Functions (Node.JS) からの http リクエスト (GET|POST) で async/await を適用する
- 8. その実装で大丈夫?!DBクライアントのコネクションはいつ作られるかを確認してみた ioredisを例に
- 9. HTTP, WebSocket混在のプロキシサーバに個別の証明書を適用する方法(node-http-proxy)
- 10. Lambdaのレイヤーの参照方法
- 11. Amazon SQSのローカル実行環境ElasticMQの構築
- 12. コード譜投稿アプリを作る #1(アプリ構築)
- 13. nodebrewインストールメモ
- 14. 【Express】起動時に、「TypeError: express is not a function」のエラー
- 15. Node.js ExpressでEJS+静的ファイルWebサーバー
- 16. CoinCheck API を TypeScript + Node.js で書いてみる
- 17. あの最強ハッカー「ウォールナット」の七つ道具の一つ「Internet Automatic Search Program」がGithubで公開されている件
- 18. WARN Address localhost:8080 is already in use.の解決策
- 19. D3.jsとGridDBによる気象データの可視化
- 20. TensorflowJSとGridDBを用いた赤ワインの品質予測
動的に.protoファイルを読み込む@grpc/proto-loaderを利用して、Node.jsでgRPCを動かしてみた
## 以下の記事を参照して頂ければと思います
https://note.com/shift_tech/n/nb2d7d206129e
**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です。**
## 補足
ソースコード全体は以下。https://github.com/yuta-katayama-23/node-grpc/commit/778ac0d00777b29930aa14ec0bbdcf7cc4022c47
discord.js v14を使用した簡単な応答botの作り方
# discord.js v14を使用した簡単な応答botの作り方
## はじめに
どうもはじめまして、だらけ(darakeee)です。
今回はdiscord.js v14を使用して簡易的な返答Botを作っていこうと思います。こちらは、JavaScript と discord.js を利用した Discord Bot 開発のチュートリアル記事を想定して書いております。
もし説明が間違っていたり、分かりづらかったら教えてください。
DeveloperPortalで必要な操作は別の記事を書いたので、こちらをご覧ください。
https://qiita.com/darakeee/items/bb923e1c0cde6c552f9f
## 動作環境
– npm 8.14.0
– node.js 18.4.0
– discord.js 14.1.2
– dotenv 16.0.1※discord.jsは「16.9.0」以前は対応していないので注意。
## ファイル構成
> discordBot/
├ node_module/
├ src/
│ └ index.js
├
npmについてくるnpxコマンドをもっと活用しようぜ
Node.jsのパッケージマネージャであるnpmには`npm`コマンドのほかに`npx`というコマンドがついてきます。`npx`は便利さのわりにあまり活用されていない気がしたので書いた記事。
# `npx`コマンドとは??
`npx`はnpmのパッケージで定義されたコマンドを起動するコマンドです。npmのパッケージでは`package.json`の`bin`を設定することでそのパッケージをインストールしたときに同時にインストールするコマンドを定義することができます。`npx`ではパッケージ名を指定することでそのパッケージで定義されたコマンドを実行できます。# 利点1 – ローカルインストールしたパッケージのコマンドの起動が楽?
npmで配布されているCLIアプリを使うとき、`npm install`に`-g`フラグを付けてグローバルにインストールしろ、という指示になっていることが多いです。“`console:グローバルにインストール
$ npm install -g npm-check-updates
“`これによりコマンドがシステム全体にインストールされるので、パッ
Super! Build a simple Nuxt.js environment.
This time, instead of Create Nuxt App, we will build a minimal Nuxt.js development environment by manual installation.
:::note info
**development environment**– **Docker**([Node.js Dockerイメージ](https://hub.docker.com/_/node))
→ `$ docker run –name “Container Name” -p “Port Number (Host(Device))”:3000 –interactive –tty –detach node:16.17`– **Node.js** Version:16.17.0
– **Yarn** Version:3.2.2
:::### :one: Update Yarn (package manager) to the latest version.
1. Run `$ yarn set version
超!シンプルな Nuxt.js の環境を構築する。
今回は Create Nuxt App ではなく、手動インストールで最小限の Nuxt.js の開発環境を構築していきます。
:::note info
**開発環境**– **Docker**([Node.js Dockerイメージ](https://hub.docker.com/_/node))
→ `$ docker run –name “コンテナ名” -p “ポート番号(ホスト側)”:3000 –interactive –tty –detach node:16.17`– **Node.js** Version:16.17.0
– **Yarn** Version:3.2.2
:::### :one: Yarn (パッケージマネージャ) を最新版にアップデートします。
1. `$ yarn set version stable` を実行します。
### :two: Yarn をプロジェクトに導入します。
1. `$ corepack enable` を実行して、Corepack を有効化します。
→ Corepack とは、Node.js Ver
Lambda – RDS Proxy(TLSあり) – Auroraの構成でRDS(Aurora)に接続する
## はじめに
Lambda→RDS Proxy→RDSの接続をやってみたのでその備忘録を残す。全体の構成イメージは以下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1372684/41017c28-5f6c-795c-97ec-b64ba0a46393.png)※料金について、Auroraはインスタンスの起動時間で料金が発生するので特に注意。Auroraではなく、MySQLとかにすれば無料枠があるのでそちらの方がいいかもしれない。
## Auoraのインスタンスを作成
以下の箇所以外はデフォルトのまま設定。| 設定項目 | 画像 |
|:-:|:-:|
| テンプレート | ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1372684/f92c1631-3a07-bcca-02c3-b82922eb7e3f.png) |
| インスタンスの設定 | ![image.pn
Azure Functions (Node.JS) からの http リクエスト (GET|POST) で async/await を適用する
# Azure Functions (Node.JS) で fetch が使えない?
Rest API に GET|POST したいので、fetch を使おうとしたら動かない? ということで調べたら、Node.JS(v16) では module として利用できないので NG と...。
https://docs.microsoft.com/en-us/answers/questions/740430/can39t-get-node-fetch-to-work-my-first-azure-funct.html
# 公式ドキュメント: Azure Functions の JavaScript 開発者向けガイド を見てみる
公式ドキュメントである [Azure Functions の JavaScript 開発者向けガイド](https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-reference-node?tabs=v2-v3-v4-export%2Cv2-v3-v4-done%2Cv2%2Cv2-log
その実装で大丈夫?!DBクライアントのコネクションはいつ作られるかを確認してみた ioredisを例に
## 以下の記事を参照して頂ければと思います
https://note.com/shift_tech/n/n99b706bede8f
**※Qiitaの記事は全て個人的な記載であり、所属する組織団体とは無関係です。**
## 補足
ソースコード全体は以下。https://github.com/yuta-katayama-23/node-express/commit/51acc37d775f156bc4c312edcace88c49916080b
HTTP, WebSocket混在のプロキシサーバに個別の証明書を適用する方法(node-http-proxy)
タイトル通りです
自作アプリ内でHTTPとWebSocketのリクエストを[node-http-proxy](https://github.com/http-party/node-http-proxy)のプロキシサーバで振り分けていて、HTTPにしか証明書を適用しなくても動いていたのが、いつからか動かなくなった(Appleのポリシー変更?)ため、対応した内容を書きます。
ネットにある情報で上手くいかなくて苦労しましたが、
肝心なのはSNICallbackの第二引数で制御することでした後はコードでご確認ください
“`
var httpProxy = require(‘http-proxy’);
var https = require(‘https’);
var tls = require(“tls”);
var fs = require(‘fs’);var normalProxy = new httpProxy.createProxyServer({
target: {
host: ‘localhost’,
port: 8080,
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テンプレートとしてレンダリングして返す
– それ以外のファイルはそのまま返す# インストールしたパッケージ
“`json
{
“dependencies”: {
“body-parser”: “^1.20.0”,
“ejs”: “^3.1.8”,
“express”: “^4.18.1”
}
}
“`# 参考
以下の記事を参考というかほとんどこれをベースにカスタマイズしました
https://note.affi-sapo-sv.com/nodejs-webserver.php?utm_source=pocket_mylist#i2
拡張子htmlをejsとして実行する方法
https://stackoverflow.com/questions/21922854/change-
CoinCheck API を TypeScript + Node.js で書いてみる
# About
何故か CoinCheck API の example に Node.js が無いので簡単な API クライアントを TypeScript で書いてみました。
https://coincheck.com/ja/documents/exchange/api
# 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 // 現在の時刻
}/**
* 残高
*/
あの最強ハッカー「ウォールナット」の七つ道具の一つ「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