Node.js関連のことを調べてみた2020年06月30日

Node.js関連のことを調べてみた2020年06月30日

どうしてもKubernetesを使う気になれず、ECSを使ってみる

#ECSが好き
単純にdocker-composeの延長で使えてfargateにしておけばだいたい安定しているイメージ
運用に必要な知識が少ないし、簡単に作れるしというところでいつもECSを使うことが多いです。

###準備
今回はECS上にnginxとnode.jsのコンテナを作って、EFSをマウントするところまでを実施します。
載せるのは簡単なVueプロジェクト+APIなので基本の基本としてメモしておきます。

###クラスターの作成

まずはECSクラスタを作成します。
一瞬でできあがるのが素晴らしいですね。
クラスター名などは適当に変えてください。

![クラスタの作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273058/7d07d79b-a4b1-45dd-3af0-8fb2eabf1c38.png)

![2クラスタの作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/273058/4d9544d3-

元記事を表示

docker-composeでNode.js(Express)とPostgresSQLを連携したサービスを作る勉強会

# 概要

先日行われた勉強会にて簡易ではありますが表題のサービスを作りました。Dockerの勉強の延長で取り組みました。この記事ではそのときの勉強会の内容を記載します。

# どんなモノをつくるのか?

– チャットのようなアプリケーション
– docker-composeによるデータベースとの連携
– Node.js(Express)でフロントエンド&バックエンド
– データベースはPostgresSQL

# 完成したソースコード

https://gitlab.com/tamoco-mocomoco/study-docker-compose

# 参考にさせていただいた記事

https://qiita.com/ryo-ohnishi/items/b54e649b14b51694ef77

# 作ったモノの説明

## docker-compose

### サービス:app

“`
app:
build:
context: ./ # Dockerfile保存場所
depends_on:
– datab

元記事を表示

秋月電子で買ったLEDクラスターランプをobnizで試したメモ #obniz

少し前に秋月電子の店先で見つけて **30円**という安さもあり試しに買ったLEDクラスターランプを触ってみました。

## LEDクラスターランプ

> http://akizukidenshi.com/catalog/g/gM-06699/

店先に置いてあって面白そうだったので購入してみました。

緑と赤のランプです。

## データシートを読んでみた

データシート読んだ仕様などは[こちら](https://protoout.studio/posts/led-cluster-obniz)にメモしてます。

## obnizから利用してみた

電気を流すかGNDにするかの指定だけみたいだったので一旦これで試してみました。

“`js
‘use strict’

const Obniz = require(‘obniz’);
const obniz = new Obniz(process.env.OBNIZID

元記事を表示

Python Node.js 文字操作

Python, Node.jsともに以下の順で変換
16進数文字列 ⇔ バイナリ ⇔ 文字列 ⇔ Unicode(10進数) ⇔ 16進数文字列
そして、デフォルトのエンコーディングはUTF-8
#Python
“`python
str_data = “あ”
encoded = str_data.encode() #b’\xe3\x81\x82′
hex_str = encoded.hex() #”e38182″
encoded = bytes.fromhex(hex_str) #b’\xe3\x81\x82′
str_data = encoded.decode() #”あ”

unicode = ord(str_data) #12354
sixteen = hex(unicode) #’0x3042′
unicode = int(sixteen,16) #12354
str_data = chr(unicode) #”あ”
“`

#Node.js
“`javascript
let strData = “あ”;
let encoded = Buffer.from(strData

元記事を表示

S3に保存されたMP3ファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする

# S3に保存されたMP3ファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする

## はじめに
前回の[S3に保存されたwavファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする](https://qiita.com/haruhiko28/items/55cc892eb2c41f8f12cf)に引き続き、
今回はMP3ファイルを対象に、S3に保存されたMP3ファイルをLambdaでGoogle Cloud Speech-to-Textを使って文字起こしする手順をまとめます。

重複する点が非常に多いので、相違点になるコードの部分だけ([前回](https://qiita.com/haruhiko28/items/55cc892eb2c41f8f12cf)でいう5-9のみ)ご紹介します。

## Code
実行するコードは以下になります。

“`javascript
const AWS = require(‘aws-sdk’);
const speech = require(‘@googl

元記事を表示

[Node.js]カバレッジレポートを出力しよう

現場で、なんとなくistanbulを使用してCI環境を構築しておったが、
Node.jsのスプレッド公文で半端なくエラーが出力されるという自体が発生。。。

なんで!?なんで!?

https://www.npmjs.com/package/istanbul

“`
This package has been deprecated
Author message:

This module is no longer maintained, try this instead: npm i nyc Visit https://istanbul.js.org/integrations for other alternatives.
“`

あー。なるほど。(公式は読みましょう。はいすみません。)

いい機会なので、nycを使ってちゃんと出力してみようと思った次第で。

# 環境を作ってみよう
Dockerじゃないと夜も眠れないので、Dockerで構築してみる。

“`
# 適当に
$ mkdir CoverageNodejs

# Create Dockerfile
$ mkdir do

元記事を表示

nodejsを使ってウエブサーバーを作ろう – majidai

[![Build Status](https://travis-ci.com/dakc/majidai.svg?branch=develop)](https://travis-ci.com/dakc/majidai)[![GitHub license](https://img.shields.io/github/license/dakc/majidai.svg?style=popout)](https://github.com/dakc/majidai/blob/master/LICENSE)
# majidaiとは
majidaiとは、nodejs用のWebフレームワークです。
サードパーティーライブラリが使っていないため非常に軽いです。
データ量 < 50KB

#### インストール
[nodejs](https://nodejs.org/en/download/)がインストールはこの記事のスコープ外とします。
##### 1. プロジェクトの初期化
タミナルから作業フォルダーに移動し、プロジェクトの初期化を行います。

元記事を表示

CLS とは?ブラウザとNode.jsで CLS を実装してみます

資料を調べる際に、CLS の存在を知りました。エンジニアリングで結構いいデカップリングのやり方と感じまして、シェアしたいと思います。

# シチュエーション

ブラウザか、サーバーのNode.jsか、どっちでもエラーハンドリング、ユーザートラッキングのニーズは日常茶飯事。例えユーザーを特定しなくても、id をつけて、ユーザーの行為を追跡して、エラーの再現にも重要し、プロダクトの改善にも役たちます。

仮に今エラーハンドリングを書こうと思って、このエラーハンドリングはすべてのエラーを処理しますが、どのリクエストから生み出したエラーを知りたいと

“`javascript
log.error(“Error occured”, req);
“`

このハンドリングは req と結合しちゃった

仮に今このエラーどのユーザーから出たエラー、ユーザーが何をやったかを知りたいと

“`javascript
log.info(“User has done xxx”, user);
log.error(“Error occured by”, user);
“`

ユーザーとも結合しちゃった

元記事を表示

【Javascript】ワンライナーで現在時刻をフォーマットした日付で表示する

getDay()、getHours()とかやってから繋げるのめんどくさい:confounded:

## コード:writing_hand:
“`javascript:ワンライナー
new Date().toLocaleString(undefined, { month: “short”, day: “numeric”, hour: “2-digit”, minute: “2-digit” });
“`

“`javascript:↑改行するとこう
new Date().toLocaleString(undefined, {
month: “short”,
day: “numeric”,
hour: “2-digit”,
minute: “2-digit”
});
“`

“`:結果
8月10日 19:19
“`

### 別のやり方
“`
new Intl.DateTimeFormat(undefined, { [ここにオプション] }).format(new Date());
“`

## 使い方
“`
dateObj.toLocaleString

元記事を表示

laravel+vueプロダクトのローカル開発環境

#書いてあること
Laravelでバックエンド、Vueでフロントエンドの構成のプロダクトをWindowsクライアントで開発する際のクライアントのローカル環境の構築方法。

#手順
##1.「Visual Studio Code(VS Code)」のインストール
公式サイトからダウンロードしてインストール

##2.「VS Code」拡張機能のインストール
「VS Code」を起動する。
アクティビティバーの「Extensions(拡張)」アイコンをクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83103/fbd9b120-b659-0119-aa91-9530685fbf6f.png)

以下の検索ボックスを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/83103/65dd7e9c-f190-e4ea-b46e-89452b4d4314.png)

以下の拡張機能名を入

元記事を表示

Node.js 開発環境構築

# はじめに
Node.js 未経験者が初めて開発環境を構築したときの備忘録です。
Homebrew や git はインストール済みの前提です。

## 環境
“`
macOS Catalina version 10.15.5
Homebrew 2.4.2
git version 2.22.0
fish, version 3.0.2
“`

# nodenv
## anyenv
こちらはnodenv以外にもあるpyenv等、様々なenv系のツールをまとめてくれるもの。
今回はこちらを経由して nodenv をインストールする。
https://github.com/anyenv/anyenv

インストール

“`sh
$ brew install anyenv
“`

初期化します。

“`sh
$ anyenv init
# Load anyenv automatically by adding
# the following to ~/.config/fish/config.fish:

status –is-interactive; and source (any

元記事を表示

ルートディレクトリ(/)とホームディレクトリ(~)のちゃんとした理解

ものすごい細かいことだけど、パスの指定方法での`~`(チルダ)と`/`(スラッシュ)の理解が曖昧で気持ち悪い思いをしたのでメモ。

`/`: ルートディレクトリ
`~`:今のユーザーのホームディレクトリ
`~taro`: taroというユーザーのホームディレクトリ

## スラッシュの意味合い
ルートディレクトリの`/`と、各ファイルやディレクトリの前につく`/`は意味合いが違っている模様。

– 前者:ルートディレクトリそのもの
– 後者:ディレクトリを区切るもの

なので、一見ルートディレクトリのせいで「ディレクトリとは末尾にスラッシュが付いているもの」という勘違いを(少なくも筆者は)しちゃうが、`hogehoge/`がディレクトリなのではなく`hogehoge`がディレクトリなのだ。ホームディレクトリを`~/`だと思ってしまっている人は多いのではないか?

## ~ユーザー名
また`~taro`でtaroさんのホームディレクトリを指定できるのは初耳で、結構ググったけどこれについて深く語っている記事は見当たらなかった。こういう指定の仕方があるんですね。

今すぐ使いたいスプレッド構文、”Three-dots” Tip 集

Screen Shot 2020-06-17 at 6.40.18 PM.png

こんにちは。また転職しますので、以前仕事で使っていたアカウントから切り離して新しいアカウントからこれを書いています。(なので現在フォロワー0からの再出発!)

この記事は10日ほど前に私が [Dev.to](https://dev.to/girlie_mac/spread-syntax-three-dots-tricks-you-can-use-now-aob) で投稿したものと同じ内容なのですが、Must-read に選ばれるほどの好評でしたので日本語でも書いてみることにしました。

ES6 (ECMAScript 2015, the 6th edition) が標準化されて5年経ちました。この通称 ES6 は多くの新機

元記事を表示

RESTAPIが作れるようになるまで【Heroku,Node.js使用】

# 注意
記載途中です。内容に大幅な変更もあると思います。
(私自身完全に理解できていない状態での記事作成になるため。)
**色々知識を得た結果、ejs(テンプレートエンジン)を使用すればWebアプリが作れることが判明したので、これはRESTAPIが作れるようになるまでに変更します。**

# はじめに
HTMLやJavascript、C#もしくはjavaは分かるけど、サーバーをどう構築すれば良いか分からないレベルの人なら参考になると思います。
(恐らくSES事業を経験してると、そのレベルにはなると思います。)

具体的には、docker、AWS、Heroku、node.js、Nginxの辺りが完全に理解できていないレベルの人です。

Gitが分からない人は、ソースツリーを使用して、コミットプッシュマージクローンプルリク辺りを理解するところから始める方が良いと思います。とりあえず、下記サイトを参考にどうぞ。

[SourceTreeの使い方 GitHubとの連携方法](https://ics.media/entry/15195/)

# 実施内容

## Herokuに登録
まずはHe

元記事を表示

mongoose で docker でたてた MongoDB に接続するのにはまった話

## はじめに

Python でせっせと実装していたものが、“`npm install“` すれば、あっという間に出来てしまうことを知り、少し落ち込んだりもしたけど、Node.js で書き直している私です。Node.js は超初心者です。

開発は1人でやっていて、まだ試しに作ってるだけの状態で、Mac にあれこれ DB をたてるのが嫌なので、DB だけ docker でやっちゃおう!とやってみたところ、ちっとも繋がりませんでした。

mongoose の Top ページ ([ココ](https://mongoosejs.com/))に書いてある

“`javascript
const mongoose = require(‘mongoose’);
mongoose.connect(‘mongodb://localhost:27017/test’, {useNewUrlParser: true, useUnifiedTopology: true});

const Cat = mongoose.model(‘Cat’, { name: String });

const kit

元記事を表示

【Node.js入門】ファイル&jsonファイルI/Oをやってみた♬

常識だからだと思うけど、Node.js始めたのでファイル入出力やろうとすると、割と動かないし、記事がもう一息なので、自分で整理しておこうと思う。
今回は、テキストファイル書き出し/読込とJsonファイルの書き出し/読込をやろうと思う。
参考は以下のとおり
【参考】
①[Node.jsを使ったやっつけのファイル操作](https://qiita.com/wifeofvillon/items/b307306eed08d8a7b4f4)
②[[Node.js]ファイルの作成、書き込み、追記をする](https://tech.chakapoko.com/nodejs/file/write.html)
③[JSのObjectをforEachで処理する方法](https://qiita.com/nantekkotai/items/6c603b40ac2264e9f6f6)
###やったこと
・テキストファイル書き出し/読込
・Jsonファイル書き出し/読込
###・テキストファイル書き出し/読込
これは、参考①で取り上げているので、まんま動くかなと思ったが、少し違うような気もしたので、参考②を見つ

元記事を表示

Node.jsのコードを定期実行する(crontabを利用)

# これまでのおさらい
– [Raspberry piにNode.jsをインストールする](https://qiita.com/takashi53/items/69d4395c70d76ddbb0ab)
– [Node.jsでrequestモジュールを使ってHTTPリクエストを実行する](https://qiita.com/takashi53/items/76c5987b73b76ba9ea96)
– [Node.jsでIFTTTのWebhooksを使う(requestモジュール利用)](https://qiita.com/takashi53/items/7f1679c52edd741c3ed8)
– [Node.jsからobnizでBME280(気温、湿度、気圧)センサーを動かす](https://qiita.com/takashi53/items/49ce6686df961df9001e)

# 今回のお話
– node.jsをcrontabで定期実行する。

前回書いたコードは、「BME280センサーの値を読み取り、Google スプレッドシートに書き込む」というものでした。

元記事を表示

「Cannot extend an interface ‘NodeJS.EventEmitter’.…」の解決方法メモ(vue-cli4+TypeScript+Electron)

# はじめに
vue-cli 4とElectronでデスクトップアプリケーションを開発しようとした際に、@types/nodeのEventEmitterに関するエラーが発生した。無事解決できたのでメモとしてまとめる。

# 環境・バージョン
Vue:2.6.11
Vue CLI:4.4.6
@types/node:(14.0.14)→12.6.9(本記事の解決策)
Electron:9.0.0

# 発生した事象
[“vue-cli3 + TypeScript + Electronでアプリを開発する”](https://qiita.com/paragaki/items/e7d3a43b50233af96424)を参考に(ほぼコマンドや設定そのままで設定)プロジェクトを作成すると、最後のアプリケーションビルドの段階で以下のようなエラーが発生した。

“`
$ npm run electron:build
~~~省略~~~
ERROR Failed to compile with 19 errors
~~~省略~~~
ERROR in C:(作業ディレクトリ)/node_modules

元記事を表示

【個人メモ】Express環境ハンズオン

完全に個人用メモです。

1. Node.jsとnpmがinstall済みであることを確認する
node -v, npm -vコマンド実行

2. expressのインストール
作業ディレクトリでnpm initを実行してpackage.json作成
npm install express express-generator –save

3. expressアプリケーションの雛形作成
./node_modules/.bin/express –view=pug sample

4. アプリ立ち上げ
cd sample
npm install
npm start
ブラウザからhttp://localhost:3000/につなぐと「Welcome to Express」が表示される。

元記事を表示

npm install時のエラー解決 No Xcode or CLT version detected!

# 環境
macOS Catalina 10.15.4
npm 6.14.5

以下のエラーが出た時の解決

“`.shell
No receipt for ‘com.apple.pkg.CLTools_Executables’ found at ‘/’.

No receipt for ‘com.apple.pkg.DeveloperToolsCLILeo’ found at ‘/’.

No receipt for ‘com.apple.pkg.DeveloperToolsCLI’ found at ‘/’.

gyp: No Xcode or CLT version detected!
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/Users/izumi/.anyenv/envs/nodenv/versions/14.3.0/lib/node_modules/npm/node_m

元記事を表示

OTHERカテゴリの最新記事