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

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

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

元記事を表示

ServerlessFrameworkでDynamoDBLocalを使う

今更ですが、[Serverless Framework](https://www.serverless.com/)でDynamoDBのローカル開発環境を構築するために、[DynamoDB Local](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html)を導入したので、その記録です。

## はじめに

[DynamoDB Local](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html) 自体は、そもそも aws 公式のツールです。

DynamoDB をローカル環境で利用できるように用意されています。

JRE 上で動作するので、Java6以上の実行環境が必要です。[^1]

それを Serverless Framework で使うための [Serverless DynamoDB Local](https://www.server

元記事を表示

【準備時間5分】JavaScriptを学びつつ戦う!RoboCodeやろうぜ!

#JavaScriptを学びつつ戦う!RoboCodeやろうぜ!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/8cd86f77-d8d7-730d-c7b9-b020511eaf42.png)

※Windows + Node.js環境を想定して書いています。

Git
https://github.com/mokemokepyonpyon/robocode-js/tree/gh-pages

Download
https://github.com/mokemokepyonpyon/robocode-js/archive/refs/heads/gh-pages.zip

##RoboCodeとは
Robocodeとは元々Java言語でプログラミングする対戦型ロボットシミュレータです。
自分プログラミングしたロボットを、世界中のプログラマが開発したロボットと闘わせることができるんです!

youchenleeさんが作成したJS言語バージョンを
更に初心者向けに改良し

元記事を表示

discord.js 連投対策をする

今回はDiscord.jsで連投対策をしていきます

#必要なもの
discord.js@12(改良すれば13でもいい)
Node.js12以降

#コード
“`js
const discord = require(‘discord.js’);
const client = new discord.Client()

const spam = [];
//spamオブジェクト作る

const maxtime = 1;
//時間を定義しておく

client.on(“message”, message => {
//メッセージイベントを発火

if (message.author.bot) return;
//BOTの場合は処理を実行しない

if (new Date() – spam[message.author.id] <= maxtime * 1000) { //現在の時刻から保存された時刻を引いた数がmaxtime(ミリ秒なので*1000している)以下だった場合実行 //ここから下が連投された場合の処理

元記事を表示

npm実行時に /usr/bin/env: ‘bash\r’: No such file or directory

# 事象
WindowsでWSLでnpm実行時に下記エラーが発生。

“`
$ npm -v
/usr/bin/env: ‘bash\r’: No such file or directory
“`

コマンドプロンプトでは問題ない。

“`
>npm -v
8.1.0
“`

# 原因
WSL上では、Windowsにインストールしたものは稼働せず、WSL実行用にインストールが必要。

# 対応
https://docs.microsoft.com/ja-jp/windows/dev-environment/javascript/nodejs-on-wsl

上記リンクに従い実行

nvmのインストール

“`
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
“`

確認

“`
$ command -v nvm
nvm
“`

Node.js LTS版 インストール

“`
$ nvm install –lts
“`

確認

“`
$ nvm

元記事を表示

卒業した推しメンに電話して次の推しメン候補をSMSで教えてもらう

長らく応援してきた乃木坂46の大園桃子さんが2021年9月4日にグループを卒業、そして芸能界を引退しました。毎回全力投球していた握手会(最近ではオンラインのお話し会)もなくなってしまい、今は推しロスで夢も希望もない毎日を過ごしています。

**次の推しメンは見つかるのだろうか。。。**

そんな気持ちになれないよ…と未練たらたらな自分から脱却するためにTwilioで**「推しメンに電話すると卒業の旨が告げられて次の推しメン候補が送られてくる」サービス**を作りました。デモはこちら(音声Onにしてください)。