- 1. Node.jsでSNMPエージェントから値を取得する
- 2. 次世代ORM Prisma スキーマから型安全なコード自動生成
- 3. yum install nodejs | Error: Package: 1:nodejs-16.15.0-3.el7.x86_64 (epel)
- 4. 【typeorm】「オプションではない引数が 0 個では不足しています。少なくとも 1 個の引数が必要です」のエラー
- 5. webhookを叩くだけのシンプルなLambdaを5つの言語で作ってみて実行速度を測る
- 6. nvm for Windows 導入
- 7. SequelizeでDBのテーブルとデータを作成し、CRUD操作してみる(2)
- 8. SequelizeでDBのテーブルとデータを作成し、CRUD操作してみる(1)
- 9. 【Windows】Node.js のバージョンアップ
- 10. Node.js Stream 個人的まとめ
- 11. Nodejsでフォルダ内のファイルから繰り返し処理でmoduleを読み込む
- 12. あるWebサービスの開発メモ・Docker + Nextjs + TypeScript + mui + supabase-js + react-query + swiper の導入手順
- 13. 【Node.js】検証と実践:Streamの基本的な使い方
- 14. あるWebサービスの開発メモ
- 15. S3にあるPDFを取得してZIPにする
- 16. [チャット]SNSのテンプレートを作成してみた[解説編]
- 17. [認証]SNSのテンプレートを作成してみた[解説編]
- 18. SNSのテンプレートを作ってみた
- 19. Rollup.jsによってNode.js/TSプロジェクトをバンドルと圧縮
- 20. Docker-composeでnode.jsのUDP通信をテスト。
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 Usertypeorm 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`のみ扱います。この記事の流れですが、
まず誤解したままでざっくり実装してみて、その後間違っている部分を公式の説明をみたりして解消していき、改善したコードに作り直していきます。なげーです。
##
あるWebサービスの開発メモ
この記事を書き始めたのは 2022年8月11日、山の日という祝日です。[弊社](https://unremoted.com)ではある [Webサービス](https://sirokuro.site)を開発しています。9月にサービス開始を目指しており、その道中で知り得た知見というか手順といったものをまとめています。
## [技術スタック](https://qiita.com/ishi32/items/12f722004e914e9119aa)
## 開発環境
– [Intel chip の macOS PC に、Webフロントエンドの開発に必要なツールをインストールする手順](https://github.com/unrcom/devenv_mac_intelcpu)
– [Docker + Nextjs + TypeScript + mui + supabase-js + react-query + swiper の導入手順](https://qiita.com/ishi32/items/c7baded80262cd1fe429)## [本番環境](https://qiita.
S3にあるPDFを取得してZIPにする
# 要件 : S3にあるPDFを取得してZIPにする
利用するライブラリ
– フェッチ処理 : [Axios](https://axios-http.com/)
– ファイル圧縮 : [Archiver](https://www.archiverjs.com/)
– S3からPDFのオブジェクト取得 : [AWS-SDK for javascript](https://docs.aws.amazon.com/ja_jp/sdk-for-javascript/index.html)### アップロードのシーケンス(処理手順)
“`mermaid
sequenceDiagram
participant フロント
participant バックエンド(例 download.ts)
participant S3フロント->>バックエンド(例 download.ts): ①ZIPダウンロードのリクエスト
par ②PDF取得
バックエンド(例 download.ts)->>S3: S3.getObject()
[チャット]SNSのテンプレートを作成してみた[解説編]
# はじめに
SNSテンプレートの完成版はすでにGitHubのリポジトリに上げています。
この記事ではそのリポジトリを元に、node.jsとexpressとsocket.ioの紹介をします。なお、環境作成としてリポジトリに上げているmongodbとnginxの解説はほとんど行いませんので悪しからず。リポジトリのクローンなどを雑に解説したヤツ
https://qiita.com/king_dog_fun/items/fb833a71115199c02c39
# serverのディレクトリ構成
express-generatorで生成される雛型を元に構成しています。大きな変更点と言えばconfigディレクトリの追加とsocket.jsの作成でしょうか。
express-generatorのインストールと実行は次のコマンドで行うことが出来ます。試してみてね☆“`
npm install express-generator -g
express –view=pug directory_name
“`ちーなーテンプレートエンジンはpugです。
以下に書いてある
[認証]SNSのテンプレートを作成してみた[解説編]
# はじめに
SNSテンプレートの完成版はすでにGitHubのリポジトリに上げています。
この記事ではそのリポジトリを元に、node.jsとexpressとpassportを使用した認証機能付きのwebサイトの作り方を紹介します。なお、環境作成としてリポジトリに上げているmongodbとnginxの解説はほとんど行いませんので悪しからず。リポジトリのクローンなどを雑に解説したヤツ
https://qiita.com/king_dog_fun/items/fb833a71115199c02c39
# serverのディレクトリ構成
express-generatorで生成される雛型を元に構成しています。大きな変更点と言えばconfigディレクトリの追加とpassport.jsの作成でしょうか。
express-generatorのインストールと実行は次のコマンドで行うことが出来ます。試してみてね☆“`
npm install express-generator -g
express –view=pug directory_name
“`ちーなーテンプレー
SNSのテンプレートを作ってみた
# はじめに
最近のプログラマーはコードを打たないらしいです。そりゃ、プログラマーたるもの誰もが経験しているとは思いますが、サンプルコードの挙動をテストするためにタイピングをしていれば、どこかでミスが発火するものです。おまけに環境を自分で整えるとなれば作業時間はかなりのものとなります。
そこで今回はnode.jsでSNSを作るためのテンプレートとなりそうなものを作成してきたので、共有したいと思います。内容はexpress-generatorを基礎としたnode.jsでチャット機能、ログイン機能をつけたというものです。mongodbとnginxも使用しています。
なお、この記事では解説はせず、GitHubからクローンの方法を置いておくだけだ。解説は以下のURLで行っています。**passportについてのざつ~な解説**
https://qiita.com/king_dog_fun/items/d6b3565e624b96d6ea9c
**socket.io(chat)についてのざつ~な解説**
https://qiita.com/king_dog_fun/items/f
Rollup.jsによってNode.js/TSプロジェクトをバンドルと圧縮
## 0.初めに
+ 普段、 `tsc` を使って `TS` プロジェクトを `JS` に変換しますが、バンドルツールを使わないと、変換した後のサイズが大きくなってしまうことが多いです。この記事は`Rollup.js`を使って、バンドルと圧縮を実装します
+ この記事は`TS`による開発した`Node.js`プロジェクトに基づいて展開します## 1.インストール
まずは、`Rollup.js`をインストール
[公式サイト](https://rollupjs.org/guide/en/#installation)“`shell
yarn add -D rollup
“``Rollup.js`のプラグインをインストール
“`shell
yarn add -D @rollup/plugin-commonjs rollup-plugin-terser rollup-plugin-typescript2
“`プラグイン説明
+ `@rollup/plugin-commonjs`:プロジェクトが使用する依存関係を`rollup`に伝えます
+ `rollup
Docker-composeでnode.jsのUDP通信をテスト。
# はじめに
世の中には自分の良く使うプログラム言語をローカル環境に入れたくないという人がいるものです(自分)。そのくせしてサーバーの方で環境を整えるのもめんどうという人もまたいます。でもでも、それでも、プログラムの挙動がどうなるのか自分自身で確かめたい。そんな人のためのDocker-compose環境を共有します。
因みに…一番大事なことの気もしますが…テストするのはタイトル通りUDP通信です。Docker コンテナ同士を内部ネットワークで繋いでUDP通信しています。# GitHubからクローン
“`
git clone https://github.com/DogKingFun/AandB.git
“`予めGitHubに用意しておいたリポジトリからデータを持ってきます。中のAとBのディレクトリにあるnode.jsのプログラムを書き替えてもらえれば十分なテストが可能だと思います。
# Docker-compose
“`
docker-compose up
“`2022/08/09日のバージョンでは、以下のようなログが流れます。
“`
Recrea