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

Node.js関連のことを調べてみた2020年09月10日
目次

同僚の作成したdockerコンテナをbuildする際にコケたポイントメモ

## 初めに
同僚が作成してくれたnodeのdockerコンテナをbuildする際に何点かコケたポイントがありましたのでメモしてみます。
同様のケースで嵌っている方がいたら参考になれたらと思います!

## 前提
__コンテナを作成してくれた人のPC__
Mac Pro
こちらの環境では一発`docker-compose up –build`を流せばbuildとupが通る
__私のPC__
Windows10 Pro
npm –version
6.14.5
数回コケる
__コンテナの構成__
Node→image: node:latest
MySQL→image: mysql:5.7
Nginx→image: nginx:latest

## Cannot create container for service mysql: Conflict
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285286/4fe419ee-32b4-0aae-f188-ad9216f737a8.png

元記事を表示

え!? わずか3分でローカルにTypeScriptの実行環境を!?

できらぁ!(様式美)

ということでローカルにTypeScriptの実行環境を作ります。すぐできます。

TypeScriptを使うだけなら、[TypeScript playground](https://typescript-play.js.org/)等を使えばいいと思うのですが、「○○のパッケージを試したい。ついでだからTypeScriptも使いたい」という欲張りさんはローカルに環境構築したくなることもあるでしょう。え? codesandbox? 知らんなぁ。

とにかくローカルにTypeScriptの実行環境を作っていきます。ゴールは「コンパイルして出来たjsファイルをnodeコマンドで実行するところ」までです。

# 事前準備
以下は事前に準備できてるとします。出来てない方は適当にググってください。

– node, npm(yarn)

# ローカルにTypeScriptの実行環境を作成
ここから本題です。
あと私はyarn派なのでyarnを使います。

## プロジェクトの作成
プロジェクトディレクトリを作成して、package.jsonを作りましょう。

“`bash

元記事を表示

無料でSSR・ホスティング・API鯖を立てれるVercel。GitHub Actionsで自動デプロイ。

あらかじめローカルでプロジェクトを作っておく

## 環境変数
VECEL_TOKEN → コンパネのSettings→Tokens
VECEL_ORG_ID → .vercel/project.jsonに書いてる
VECEL_PROJECT_ID → .vercel/project.jsonに書いてる

## ソースコード

デプロイするファイル

“`public/index.html





Document

hello



“`

“`..github/workflows/main.yml
# 何でもいいから名前をつける。今回はCI
name: CI

#

元記事を表示

MATERIAL-UIのMultiple SelectでChipから選択を解除する

#はじめに
React + Typescript + MaterialUIでフロントエンドを作成していたときに実現したいことができなかったので参考程度に投稿します。

##実現できなかった原因
Chipの×ボタンを押してもSelectのメニューが出てきてしまう

##実現したいこと
MaterialUIの公式ドキュメントに書かれていた「[Multiple Select](https://material-ui.com/components/selects/#multiple-select)(Chip)」でChipの×ボタンからも選択を解除したい!
![last.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/649992/ac949482-f666-a4cf-818b-bb90520def46.gif)

#結論
Chipコンポーネントに以下プロパティを追加

“`react
onMouseDown={(event) => {event.stopPropagation();}}
“`

#前提条件

元記事を表示

社内ネットワークからIBM Watsonにつながらない

#はじめに
社内ProxyのおかげでIBM WatsonのAPIが通らかったので対処法を記載します。
(今回はWatson Discoveryです)

#結論
node-sdkのところに書いてありました。:open_hands:
[Use behind a corporate proxy](https://github.com/watson-developer-cloud/node-sdk#use-behind-a-corporate-proxy)

“`
npm install tunnel
“`

#前提条件
+ Node v10.16.3
+ npm v6.9.0
+ IBM CloudのWatsonDiscoveryのサービスが既にあり、collectionが作成済みであること

Discoveryについてはこちらの記事が参考になると思います。
Discoveryってなんぞ?という方はまずこちらの記事を見ることをおすすめします。
[【2019/2月 全面更新!】Watson Discovery Serviceが日本語対応したので、触ってみた【SDUやってみた】編](htt

元記事を表示

【AWS】【Lambda】 SalesforceのREST APIを呼び出す

– 表題の通り、LambdaからSalesforceのREST APIを呼び出してみます
– Lambdaの言語はNode.jsを使用します

## Salesforce接続アプリケーションの設定
– 外部サービスとSalesforceを接続する際にOAuth認証を使います
– OAuthの設定をするには、Salesforceで接続アプリケーションの設定を行います

### 設定方法
– Salesforceにログインした後、[設定]>[アプリケーション – アプリケーションマネージャ]と選んで
– [新規接続アプリケーション]ボタンをクリックします
– 以下を入力します
– 接続アプリケーション名
– 適当に「AWS Lambda」とでも
– API参照名
– 自動入力されます
– 取引先責任者メール
– とりあえずシステム管理者のアドレスにしておきましょう
– OAuth設定の有効化
– チェックします
– コールバックURL
– 今の所は適当に
– 選択

元記事を表示

デプロイコマンドを実行する際に対話形式で確認

デプロイのコマンドを実行する際に、環境ごとで確認をするためのスクリプトを書きます。
指定された入力があれば、そのあとの処理を続けて実行、指定と違えばそこで終了します。

“`json:package.json
{
“scripts”: {
“deploy”: “sh confirmation.sh STG && node deploy”
}
}
“`

“`shell:confirmation.sh
#!/bin/bash

ENV_NAME=$1

function ConfirmExecution() {
echo “${ENV_NAME}環境のスクリプトを実行しますか?”
echo “実行する場合は${ENV_NAME}と入力してください”
read input

if [ -z $input ]; then
ConfirmExecution
elif [ $input = ${ENV_NAME} ]; then
echo “スクリプトを実行します。”
else
echo “スクリプトを終了します。”

元記事を表示

いまさらNode.js入門

## 記事概要

環境構築まわりは誰か出来る人ひとりがやってしまえば
触る必要がない(むしろ触らないほうが良いくらい)ので
なかなか知識が付きにくい。
という事で少し勉強してみた事をまとめてみました!

## Node.js とは

そもそも[Node.js](https://nodejs.org/ja/)とは何ぞやというところですが、
めちゃくちゃ簡単に言うと、サーバーサイドで動くJavaScript環境の事です。

と言葉で聞いてもピンと来ないので、実際にどういう事か
次のスライドで見てみましょう。

やっている事の説明は次のスライドで行っています。
![qiita-test.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185788/af61b379-ae8a-eb19-d3b1-8c98b6598eb5.gif)

## 前のスライドでやっている事

1. `test`を出力するスクリプトを作成
2. スクリプトファイルをダブルクリックで実行しようとすると

元記事を表示

JSエコシステムぶらり探訪(2): Node.jsとCommonJS modules

JSエコシステムの進化を語るにはNode.jsを避けて通ることはできません。Node.jsと、それ自身の持つモジュール機能について歴史的な背景を踏まえつつ説明します。

[←前](https://qiita.com/qnighy/items/fc19f328cf36fc28658c) [目次](https://qiita.com/qnighy/items/16fdd8e58309a1f706a0)

## Node.js

Node.jsは非同期I/Oを備えたサーバーサイドJavaScriptのための実行環境として2009年に登場しました。[^server-side-js-before-node] 現在はサーバーサイドJavaScriptだけではなく、JavaScriptのビルド環境として無くてはならないものになっています。

[^server-side-js-before-node]: [Wikipediaの記述](https://en.wikipedia.org/wiki/Node.js#History)によると、それ以前にもサーバーサイドJavaScriptの技術自体は存在してい

元記事を表示

nodejsでスクレイピング入門[阿部寛]

# はじめに
卒研でいろいろあって、nodejsでスクレイピングやりそうになってきましたのでそれのメモです、
入門ということで[阿部寛のHP](http://abehiroshi.la.coocan.jp/)から阿部寛の画像をとっていきたいと思います、

# スクレイピングとは?
そもそもスクレイピングってなんだろってなるから調べました。
意味はHPから情報を抽出するということらしいでした、
使い道としては、サイトに載ってる情報が欲しいとか、APIがないけどもHPならあるとかだったときはスクレイピングで情報分捕る感じかと、

# 阿部寛ってだーれ?
日本の俳優、テルマエ・ロマエとかに出ているお方、上田次郎、日本科学技術大学理工学部教授、何故ベストを尽くさないのか?
よくHPが情報系の実験ネタ(?)に扱われるほどすごい[公式サイト](http://abehiroshi.la.coocan.jp/)をもっているお方

# できること
nodejsから阿部寛のサイトにある阿部寛の写真と取得できる

# つかったもの
– nodejs
– yarn

# できたもの
## 最初はHTMLデータ

元記事を表示

YOLP の WebAPI で1時間以内の降水予想と雨雲レーダー地図画像を取得する

## 概要

– YOLP (Yahoo! Open Local Platform) の Yahoo!ジオコーダAPI + 気象情報API + Yahoo!スタティックマップAPI を使用して1時間以内の降水予想と雨雲レーダー地図画像を取得する
– 動作確認環境: Node.js v14.9.0 + node-fetch 2.6.1

## node-fetch のインストール

“`
$ npm i node-fetch
“`

## サンプルコード

“`js
‘use strict’

const fs = require(‘fs’)
const qs = require(‘querystring’)
const fetch = require(‘node-fetch’) // window.fetch 互換 Fetch API

// アプリケーションID
const APPID = ‘YOUR_APPLICATION_ID’

// テキストにマッチした住所情報を取得する
async function getAddressLocation(text) {

// U

元記事を表示

簡単レシート印刷 receiptline で行間隔を調整してみた

[前回](https://qiita.com/dopperi46/items/88c8107648cf5be8b447)は 80 ミリカメラと 80 ミリフィルムで動画を撮影していました。
「役に立たない機械」感を醸し出していたかもしれないですね。

![01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669512/741a2f6b-8a7c-bdef-69e3-c91536f1458c.gif)

連続で印刷するため、変換ライブラリを少し変更して、自動用紙カットを解除しました。
今回もこの変換ライブラリ `lib/receiptline.js` に手を入れてみようと思います。

# 用紙節約か、読みやすさか

receiptline に添付されているサンプルデータを印刷してみました。
左は TM-T88V で、右は mC-Print3 です。

行間隔が狭いので、文字が詰まって見えます。
今どきのレシートプリンターには用紙節約機能があるので、そういう時代だと思いますが。

![02.jpg](ht

元記事を表示

無料でSSR・ホスティング・API鯖を立てれるVercel。TypeScript・ExpressでAPI鯖を立てる。

Vercel
https://vercel.com

無料で有名な**FaaS**(Function as a Service)の
**Firebase Functions**や**Netlify Functions**より使い勝手がいいと思う。

GitHubの**捨てアカ**作ってログインしようとしたら**弾かれた**。
たぶんアカを作ってから**ある程度時間が経たない**と弾かれるっぽい。

## ソースコード

“`package.json
{
“scripts”: {
“ts-build”: “webpack –mode production”
},
“devDependencies”: {
“@types/express”: “^4.17.8”,
“ts-loader”: “^8.0.3”,
“typescript”: “^4.0.2”,
“webpack”: “^4.44.1”,
“webpack-cli”: “^3.3.12”,
“webpack-node-externals”: “^2.5.2”

元記事を表示

AWS S3 アクセスログの集約化

# 前提
AWSの[S3](https://aws.amazon.com/jp/s3/)のアクセスログは1回のアクセスにつき、指定したバケットに1個のアクセスログファイルを作成するとします。
感覚的には1回につき1個のファイルではなく、同時間に発行されたログを1つのファイルにまとめて吐いているようです。細かいことは[Amazon S3 サーバーアクセスのログ記録](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/ServerLogs.html)を見て下さい。
つまり「1時間毎に1回、1日で計24回のアクセスがあったとすると作成されるログファイルの数は24個」としてこの記事を読んで下さい。

# 何がしたいか
前提で述べたように1回のアクセスで1個のログファイルが作成されるので、1000回アクセスされると1000個のログファイルが作成されてしまいます。「1日に発行されたログを全てまとめて見たい」という時に全てのログファイルをローカルにダウンロードするなんて事はしたくありません。[S3](https://aws.amazo

元記事を表示

Microsoft Teamsにメッセージと画像を送る(Node.js)

Teamsのチャンネルに投稿用アカウント(Incoming Webhook)を追加して、
チャンネルにメッセージや画像を投稿する

##1.投稿したいチャンネルにIncoming Webhookを追加

* Teamsの投稿したいチャンネルで右クリックして [コネクタ] を選択
* [incoming Webhook] を検索して [追加] をクリック、次画面で再度 [追加] をクリック
* incoming Webhookの名前とアイコン画像を設定して [作成] をクリック
* Webhook用のURLが表示されるのでコピーして [完了] をクリック

##2.base64にエンコードした画像をメッセージに埋め込んでpostで送信
* node.jsの環境つくり、”fs”と”request”をインストール
* index.jsと同じ階層に画像を準備
* 以下のindex.jsを実行

“`javascript:index.js
const fs = require(‘fs’);
const request = require(‘request’);

fs.readFile(‘画

元記事を表示

Node.jsのHTTPクライアントまとめ2020

# 概要

2020/2にNode.jsのrequestモジュールがDeprecated(非推奨)になってしまいました。
https://qiita.com/kE-sakai/items/1a64462ad41c36813c92

そこで複数の代替モジュールについて各種比較サイトを調べてまとめました。

|モジュール名| 定量的な優位性[参照サイトNo] |
|:———–:|:-:|
|node-fetch | バンドルサイズが小さい[1]
ダウンロード数が多い[2] |
|axios|GitHub starsが多い[3]|
| bent |APIスタイルが多い[1]
アップデートが頻繁[5] |
| superagent |メンテナーが多い[5] |
|ky|インストールサイズが小さい[3]|
| got | |
| make-fetch-happen | |
| unfetch | |
|tiny-json-http | |
|needle | |
| urllib| |

# 参照サイト

## 1.

元記事を表示

AWSLambda(Node.js)の入力パラメータチェック

AWSLambda(Node.js)のREST APIにおいて入力パラメータのチェックがしたい
そうだ、[value-schema](https://www.npmjs.com/package/value-schema)を使おう

#value-schemaができること
1.必須パラメータの有無、
2.型、
3.想定範囲内に存在するか(e.g.limit < input < limit)、 上記3点における入力パラメータの検証と修正ができる #使い方 大きく2つの書き方がある....と勝手に思ってる 基本のフォーマットは vs.型名( {オプション} ) ```javascript //====その1. オブジェクトの中身をまとめてチェックする方法==== var vs = require("value-schema"); // 入力パラメータのオブジェクト let requestbody = { testId: "test", testNum: 1, testlist: [1, 2, 3], NoCheckid:"no", }; // 入力パ

元記事を表示

Reactでnpm startができなくなった話。

#React.js Node.js環境でnpm start実行時にエラー発生。
解決策だけ見たい人は最後に載せてます。(予定)

##問題編

#####[【React】いまどきのJSプログラマーのためのNode.jsとReactアプリケーション開発テクニックという参考書](https://amzn.to/3i8JRoF)

の写本・実践をやっていると、

React.js Node.js環境でnpm startできなくなった。

##経緯編
create-react-appでreactのアプリを作った。

app.jsを編集し、いざ起動する。

“`
npm start
“`

そうすると、以下のようなエラーが発生。

“`
> cycle@0.1.0 start /Users/user/Documents/ubuntu/cycle
> react-scripts start

There might be a problem with the project dependency tree.
It is likely not a bug in Create React

元記事を表示

クジラとネコの親子プログラミング – Docker for Windowsを使ってScratch3.0のオリジナル拡張機能を試してみよう。

# 親子プログラミングはGitとNode.jsが使えることが前提になっている?

小学校でのプログラミング教育の必須化に伴って、子供たちがScratch 3.0に触れる機会も増えるかと思います。そんな中、ブロックをくっつけるだけのお遊びツールだとあなどっていると、次のような連載が始まりました。

>[「親子でできる!Scratch と AWS を使った “ものづくり” 体験 – 1. 準備 〜 疎通確認編」](https://aws.amazon.com/jp/builders-flash/202009/programming-with-kids/)
2020-09-01
How to be a Developer
金澤 圭

この連載の[「2. 作業の前提について」](https://aws.amazon.com/jp/builders-flash/202009/programming-with-kids/#02)で、衝撃的な次の一文があります。

> **PC に Git と Node.js がインストールされている必要があります。**

保護者の方も、GitやNode.jsを当た

元記事を表示

stdout is not a ttyに叱られる

完全に自分用の健忘録です

Git Bash(ver2.28)で実行しようとした際に、

“`
$ node hogehuga.js
stdout is not a tty
“`

と叱られてしまった。悲しい。
原因はMinTTYのアレです。大体winptyを先頭につければ解決すると思ってたけど、今回は解決しなかった。
Gitを再インストールしてもダメ。

5分くらい悩んで、拡張子をつけたら動いた。

“`
$ node.exe hogehuga.js
“`

以下参考
https://github.com/mintty/mintty/wiki/Tips#inputoutput-interaction-with-alien-programs

元記事を表示

OTHERカテゴリの最新記事