- 1. 【初心者向け】npmについてよく知らない人のための教科書 ~npm installは何をおこなっているのか~
- 2. 【IoTLT 2021】 ZIG SIM から送られるデータを p5.js Web Editor上で活用してみる
- 3. 【Node.js】Puppeteerで発生したUnhandledPromiseRejectionWarningエラーを解決する
- 4. Discord.js v13で役職パネルを作る
- 5. herokuにnode.jsとprismaで環境作成
- 6. Discord.js v12で役職パネルを作成する
- 7. nodejs でArrayに入っているコマンドを map, exec で非同期処理し、結果をまとめる
- 8. 初心者がNode.js(Express)でYouTubeの動画をダウンロードできる機能をつくる。
- 9. 【実用編】指定した個数と面数のダイスを振る
- 10. LINE BOTとIFTTT(Fitbit)でなんちゃってピクミンブルームを作ってみた
- 11. 一番スマートなNode.js+TypeScript+MySQLの使い方
- 12. # nvmでNode.jsを(Ubuntu/Windows)にインストールする方法
- 13. Nodejs の postgresql ドライバ (Sequelize, Prisma) を少し触ってみた。
- 14. DockerコンテナにDockerfileの変更が反映されない
- 15. CloudFunctionsアプリをDevContainerでさくっと開発する
- 16. Node.jsを安全にアップデートするためにやったこと
- 17. 領域展開「Gradle」で Node.js を制する
- 18. 文系卒の新人が伝えたいエンジニアへの道 社内新人研修編
- 19. Node.jsのeventemitterとそのデザインパターンについてまとめてみた
- 20. 【Node.js】ExpressとFirebaseで画像アップロードを実装する
【初心者向け】npmについてよく知らない人のための教科書 ~npm installは何をおこなっているのか~
# はじめに
対象はnpmを学習し始めた人、npmへの理解が浅い人となります。
本記事は、npm(node package manager)に苦手意識があった筆者が克服するために勉強した備忘録です。# 開発環境
– Apple M1
– Big Sur 11.6
– Node.js
– 16.13.0
– npm
– 8.1.0# npmとは
こちらについては、[【初心者向け】NPMとpackage.jsonを概念的に理解する](https://qiita.com/righteous/items/e5448cb2e7e11ab7d477)をお読みください。
「パッケージとは何か」や「package.jsonとpackage-lock.jsonの違い」など、とても理解がしやすいようにまとめられております。
いつかこんな素敵な記事を書いてみたいです。# npm installとは
– パッケージをインストールするコマンドです。
– package.jsonのdependenciesとdevDependenciesに書かれているパッケージをインストールす
【IoTLT 2021】 ZIG SIM から送られるデータを p5.js Web Editor上で活用してみる
この記事は、[2021年の IoTLT のアドベントカレンダー](https://qiita.com/advent-calendar/2021/iotlt) の 5日目の記事です。
内容は、以下の記事を書いた時にも使った [ZIG SIM](https://zig-project.com/) の話がメインです。
●ZIG SIM と Node.js のプログラム(osc.js を利用)との間で UDP による OSC通信を軽く試す(OSC Data Monitor の話も) – Qiita
https://qiita.com/youtoy/items/fddc750759f4ecef7ca7これをブラウザ上で動く p5.js を使ったプログラムで活用します。
また、開発環境として p5.js Web Editor を利用します。## ZIG SIM について
ZIG SIM はプロトタイピングに便利なアプリで、2〜3年前くらいに知ったものの、あまり活用できていませんでした。
それを、ちょこちょこ試し始めて、冒頭に掲載した記事を書いたりしていました。### 公式の紹介
【Node.js】Puppeteerで発生したUnhandledPromiseRejectionWarningエラーを解決する
#はじめに
普段はVue.js, Nuxt.jsを使った開発をしているのですが、興味本位でExpressにも触れている者です。見よう見まねでpuppeteerのコードを書いていたのですが、使いやすいように改造した際、エラーが発生。解決までに時間がかかったのでメモを残します。
“`bash
# エラー内容
UnhandledPromiseRejectionWarning: Error: Evaluation failed: ReferenceError: shop is not defined
“`
#原因>$$eval内の関数はchrome上で実行されるもので、この中で事前に定義した変数とか使おうとするとエラる。
とのことでevaluate内で変数を使ったのが原因っぽいです。実際リファクタ前の文字列ベタ打ちの時はエラーが起きていなかったので。
#エラーが起きた時のコード
“`javascript
const postPrices = await page.evaluate(() => {
const prices = document.querySelector
Discord.js v13で役職パネルを作る
#初めに
今回はDiscord.jsv13を使って役職パネルを作ってみることにした
作るにあたって結構問題にぶつかった
例
foreachで配列の数だけ回そうとしたら非同期ではなかった
解決策
Promise.allを使ったmongodbに保存するときKeyがかぶって思い通りに動かない
解決策
メッセージID+カウントで回避するようにしたcacheされていないリアクションはイベントが発火しない
解決策
partialsを使った解決しきれなかった問題
ロールが存在しなかった場合の処理がメッセージを消すという結構無理やりな感じになってしまった
誰かいい方法教えてください,,,
これによってメッセージの編集でロールを追加するということができないリアクションされた時の処理が汚い
初めてV13を触ったので変なところがあると思います指摘してくれるとありがたいです
製作期間1日
Operation job.findOne() buffering timed out after 10000ms
というエラーはMONGOに関するエラーです#必要なもの
discord.js
herokuにnode.jsとprismaで環境作成
#アジェンダ
表題通り、heroku環境にnodejs+postgressの環境作成。
環境作成時に、prismaでTBLのマイグレーションを実施する。#1. アプリサーバの作成
“`javascript:heroku環境作成
~/develop/postgress $ mkdir heroku
~/develop/postgress $ cd heroku
~/develop/postgress/heroku $ curl https://codeload.github.com/prisma/prisma-examples/tar.gz/latest | tar -xz –strip=3 prisma-examples-latest/deployment-platforms/heroku
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent
Discord.js v12で役職パネルを作成する
#初めに
今回はDiscord.jsv12を使って役職パネルを作ってみることにした
作るにあたって結構問題にぶつかった
例
foreachで配列の数だけ回そうとしたら非同期ではなかった
解決策
Promise.allを使ったmongodbに保存するときKeyがかぶって思い通りに動かない
解決策
メッセージID+カウントで回避するようにしたcacheされていないリアクションはイベントが発火しない
解決策
partialsを使った解決しきれなかった問題
ロールが存在しなかった場合の処理がメッセージを消すという結構無理やりな感じになってしまった
誰かいい方法教えてください,,,
これによってメッセージの編集でロールを追加するということができないリアクションされた時の処理が汚い
製作期間1日
Operation job.findOne() buffering timed out after 10000ms
というエラーはMONGOに関するエラーです#必要なもの
discord.js@12
aurora-mongo
Mongoのaccesskey
Mongoのacce
nodejs でArrayに入っているコマンドを map, exec で非同期処理し、結果をまとめる
**@kenmaro**です。
普段は主に**秘密計算、準同型暗号などの記事について投稿しています**。
秘密計算に関連するまとめの記事に関しては以下をご覧ください。> – [秘密計算エンジニアを始めて1年が経った。](https://qiita.com/kenmaro/items/416657efca2ff296169b)
– [秘密計算エンジニアを始めて2年半が経った。](https://qiita.com/kenmaro/items/48059dd60f79e80f5ef8)## 概要
今回は秘密計算等の記事ではなく、開発時の備忘録となります。少し前になりますが、
これができなくてげきハマりしたので、誰かの役に立つのではないかと思い、備忘録化しておきます。## やりたかったこと
nodejs で express サーバを用い、以下のような処理をするAPIを作っていました。1. クライアントからリクエストを取得する
2. azure へとサブプロセスでbashコマンドを用い、container instance のステータスを取得する(クラスターは複数)
3
初心者がNode.js(Express)でYouTubeの動画をダウンロードできる機能をつくる。
この記事は、【 [可茂IT塾 Advent Calendar 2021](https://qiita.com/advent-calendar/2021/kamo-it) 】の4日目の記事です。
# 初めに
Node.jsも記事書くのも初心者なので、もしかしたらコードや説明の間違いや、記事が読みにくいかもしれませんが、お許しください・・・
また、こちらは全て自分の動画で試しております。
## つくるもの
フロント(ブラウザ)側:URLを入力
バックエンド(サーバー)側:それに応じた動画をmp4でダウンロードして送り返す## 流れ
1. サーバーでHelloWorldがでるところまでつくる。
1. URLをおくるためのページを用意する。
1. URLを受け取って、その動画をダウンロードする## 環境
どれも新しいversionでいいと思います。$ npm -v
6.14.11$ node -v
v14.16.0## 作業開始
任意(今回はデスクトップ)の場所に作業していくフォルダを作りましょう。
そのフォルダをVSCodeで開きます。
さて、まずは初期化設定
【実用編】指定した個数と面数のダイスを振る
## 前書き
前々から、TRPGに少し興味があり、ダイス機能を作ってみたいと思ったので作ってみたいと思います。## どのようなものか
コマンドで、何回振るか、そのダイスは何面あるか。を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1940116/0a2a6c32-55b1-9705-c423-64ab6db6d20e.png)
上記は**6面**のダイスを**4回**振った時の例です。## どういう感じなのか(概要)
どういう動作をするのかの概要を説明します。1. ユーザーから2つの引数を受け取る(回数・ダイスの面数)
1. Discordの最大文字数は2000なので、上の引数が大きすぎたら無視する(任意で大丈夫です)
1. それぞれのダイスの目の合計数とそれぞれの目のリストの変数を初期化しておく
1. 「1」で受け取った回数の引数分繰り返し処理をする
1. 繰り返し処理の中に「1」で受け取ったダイスの面数の中を乱数で出す
1. その目をリストに追加しながら、足
LINE BOTとIFTTT(Fitbit)でなんちゃってピクミンブルームを作ってみた
この記事は、[プロとアウトスタジオ](https://protoout.studio/)の[アドベントカレンダー2021](https://qiita.com/advent-calendar/2021/protoout)の4日目です!
## はじめに
前回の記事(https://qiita.com/tkyko13/items/bdfee3416792737fd48d)のようにLINE BOTとIFTTTを組み合わせて最新作のPikmin Bloomのようなものを作ってみました
IFTTTにfitbitがあったのでそれを利用し、一日の終わりにその日歩いた歩数と、それにあった苗を一つだけもらえて、引っこ抜けるサービスです
位置情報とかは関係なく、歩数です
[![Image from Gyazo](https://i.gyazo.com/3d0614c109c581d3751b922e0e413977.gif)](https://gyazo.com/3d0614c109c581d3751b922e0e413977)
こんな感じに、一日の終わりにまず苗が通知され、引っこ抜くボタンを
一番スマートなNode.js+TypeScript+MySQLの使い方
# はじめに
割と久々に Node.js で MySQL に繋ぐプログラムを書いてみたのですが、以前と比べて色々パワーアップしていたので、それらを組み合わせて「現時点のベストプラクティスはこんなんかな?」という感じの検討をしてみました。
多分これが一番スマートだと思います・・・という結論に達したのですが、どうだろうか:thinking:
Node.js はまだ触り始めたばかりなので、ご意見を頂けると幸いです :bow:
# ユーティリティ実装
この辺は好みが分かれるところかもしれませんが、DBアクセス用のユーティリティを作ります。
デザインパターン的にコレがベストかは少し自信がありませんが、Node.js だと流行りのパッケージはちょくちょく変わる(ex: mysql が mysql2 になったり、redisが ioredis になったり…etc)ので、自前コードで一枚噛ませて(ラップして)おいた方が良いと思います。(モノによりけりかもしれませんがインフラストラクチャ関連は特に)
## 関連パッケージ
“`
npm install –save dotenv
np
# nvmでNode.jsを(Ubuntu/Windows)にインストールする方法
## はじめに
[https://github.com/nvm-sh/nvm](https://github.com/nvm-sh/nvm)を見ればまず間違いない.## この記事でわかること
– nvmを使ったNode.jsのインストール方法(Ubuntu/Windows)
– Nodeのバージョン確認や切り替え等のコマンド(nvmコマンドはどのOSでも共通)## nvmのインストール方法
Node Version Manager(NVM)とはその名の通り,Nodeのバージョンを管理してくれるソフトウェア.使用するnpmのパッケージによっては異なるバージョンを求められることがあるため,nvmのようなバージョン管理ツールは使って損しない.
### Ubuntu
公式の [README](https://github.com/nvm-sh/nvm) に従って進める.
curlが入っていなければインストールする.
curlはコマンドラインツールの一種で,URLの先にある場所とデータの送受信を行うために使われる.以下のコマンドを端末画面で入力してインストール.“`
s
Nodejs の postgresql ドライバ (Sequelize, Prisma) を少し触ってみた。
**@kenmaro**です。
普段は主に**秘密計算、準同型暗号などの記事について投稿しています**。
秘密計算に関連するまとめの記事に関しては以下をご覧ください。> – [秘密計算エンジニアを始めて1年が経った。](https://qiita.com/kenmaro/items/416657efca2ff296169b)
– [秘密計算エンジニアを始めて2年半が経った。](https://qiita.com/kenmaro/items/48059dd60f79e80f5ef8)## 概要
Nodejs のドライバを使ってpostgresqlに接続するテストを行った際に、
どのようなドライバやライブラリ、フレームワークがあるのかを調べたので簡単に備忘録的にまとめてみます。## 初めにまとめ
いくつかDBドライバ的なものは存在して、有名なものも幾つかありましたが、
この二つが中でも有名なようでした。– Sequelize
DBへのORMをもったライブラリであり、簡単に接続したいのであればこれを使うのが良さそうです。
– Prisma
ライブラリというよりはフレ
DockerコンテナにDockerfileの変更が反映されない
# はじめに
現在、Web系自社開発企業への転職を目標にポートフォリオを作成中。
Dockerを活用してLEMP環境を構築し、Laravel+VuejsでWebアプリケーションの開発を行っております。
Dockerコンテナのnode.jsのバージョンを変更させるために、Dockerfileを編集した際に
Dockerfileの変更がコンテナに反映されないという問題で少しつまづいたので、記録として残します。# 目次
1. [やりたいこと](#Chapter1)
1. [やったこと](#Chapter2)
1. [原因](#Chapter3)
1. [解説](#Chapter4)
1. [解決策](#Chapter5)
1. [参考文献](#reference)
CloudFunctionsアプリをDevContainerでさくっと開発する
クラウドコンピューティング、とりわけサーバーレス環境は
周りのめんどくさい事に煩わされずに「提供するモノの中身に注力できる」という点でより素早く、品質の良いサービスを提供できるシカケでもあります。本稿では、開発環境でも「より中身に注力」するためにさくっと環境を立ち上げてデプロイする事について触れようと思います。
##TL;DR
– VisualStudioCodeのDevContainerでコンテナ内に開発環境を作る
– ローカルでCloudFunctionsを実行する
– 開発環境からCloudへデプロイする##想定環境
– Windows10
– GoogleCloud(CloudFunctions)
– node.js
– VisualStudioCode##ローカルマシンにインストールするのはふたつ
クラウドのアプリケーション開発に携わる方にとって、同時に複数のサービスを開発したりメンテナンスする必要に迫られる事はありませんか?それぞれのアプリケーションが違うバージョンのフレームワークやプラグインを使っていたり、そもそも稼働するクラウドやリ
Node.jsを安全にアップデートするためにやったこと
# はじめに
はじめまして、リンクアンドモチベーションのプラットフォームチームに所属している菊池です。
弊社で開発しているモチベーションクラウドのフロントエンドビルド環境は長らくNode.js 8を使っており、「さすがにやばい」という感覚と、シンプルにモダンなライブラリをインストール出来ない、セキュリティリスクなどの観点から当時のActive LTSである14系へのアップデート作業をすることになりました[^1]。[^1]: 2021年12月現在のActive LTSは16となっています。https://nodejs.org/en/about/releases/
しかしながら、(みなさんもご存知の通り)Node.jsのアップデート作業は簡単には終わりませんでした。
今回は1度の失敗を経て、安全にアップデートするためにやったことを紹介したいと思います。※ この記事は[モチベーションクラウドシリーズアドベントカレンダー2021](https://qiita.com/advent-calendar/2021/mcs)の3日目の記事です。
# 1度目のアップデート
1度目のアップ
領域展開「Gradle」で Node.js を制する
失礼しました…
# はじめに
オークファンの大きめのデータを担当するバックエンドシステムでは Kotlin + Spring Boot + Gradle の構成がよく採用されています。少し前まではこの構成で作成されるのは、バッチプログラムや Web API がほとんどでしたが、最近さらに Vue.js を追加して UI を持った Single Page Application (SPA) の Web アプリも作成するようになってきました。
Spring Boot のプロジェクトを [Spring Initializr](https://start.spring.io/) で作成すると、Gradle Wrapper が付属しています。これにより、開発環境では JDK のみ用意するだけでプロジェクトのテストやビルドな
文系卒の新人が伝えたいエンジニアへの道 社内新人研修編
# はじめに
ここでは僕が新人研修で学んだことを伝えたいと思います。研修期間は3ヶ月です。会社としては上流工程から下流工程までの案件を引き受けている SIer 企業です。その企業がどのような新人研修をしたかというのを参考にしていただけたらなと思います。# 新人研修新人研修で行ったことは以下の通りです。
– 基本的な知識のインプット(SQL, Java, Git, etc..)
– 社内サービス改善
– 社内サービス作成そしてここでは3つ目の社内サービスの作成について話していきたいと思います。
# サービス概要
– サービスの内容
– 社内向け書籍購入ウェブアプリケーション
– 使用用途
– 社員が読んだ書籍のレビューをし書籍の情報共有をしあう
– 使用した言語
– JavaScript
– フロントエンド:React
– バックエンド:Node.js
– インフラ環境
– AWSこの開発は新人8人(フロントエンド:4人、バックエンド:4人)で行いました。僕はバックエンド側の担当していたためバックエンド側の話
Node.jsのeventemitterとそのデザインパターンについてまとめてみた
# はじめに
この記事ではeventEmitterとeventEmitterに関わるデザインパターンについて紹介しています。
evenEmitterをマスターすることで、よりプロのプログラマー(略してプロプロ)になれると思います。# eventemitterとは
まずイベントエミッターとはなにか説明します。
これ、独自にイベントを作成し、指定したタイミングに関数を発火することができます
イベント駆動開発でよく用いられます。イメージで言うと、フロントエンドでいうと、ボタンを押したときにonpushに登録された関数が発火しますよね。それです!
eventemitterを用いると、自作でイベントを作って、好きなタイミングで発火することができるようになります。
Node.jsではeventemitterがストリームの裏側で作られ、実行されています。# EventEmitterの実行例
“`js
const EventEmitter = require(“events”)
const eventEmitter = new EventEmitter()const bakuhats
【Node.js】ExpressとFirebaseで画像アップロードを実装する
# ■はじめに
普段はVue.js, Nuxt.jsを使っているのですが、Expressで画像アップロードを実装しようとしたらいつもと勝手が違ったのとサーバー側でFirebaseを使う時はFirebase SDKではなくFirebase Admin SDKを使わないといけないことを理解しておらず詰まったのでメモ。“`plugins/firebase.js:
const admin = require(“firebase-admin”);
require(“dotenv”).config();
const ServiceAccount = require(“../ServiceAccount.json”);if (admin.apps.length === 0) {
admin.initializeApp({
credential: admin.credential.cert(ServiceAccount),
storageBucket: process.env.FIREBASE_ADMIN_STORAGE_BUCKET
});
}module.ex