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

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

Node.jsを介してWeb経由でICOS(IBM Cloud Object Storage)上の画像ファイルを参照する

#やりたいこと
てっとり早く、以下2点を実現したいときの方法を記載しています。
・ICOS上にあるファイルを、Node.js上のWebアプリから参照できるようにしたい ※1※2
・ファイルは認証した人だけに見えるようにしたい ※3

※1 ICOS上の画像ファイルをimgタグのsrcとして利用可能にするなど。
※2 単にWebサイトをホスト(ICOS上のhtmlファイルでサイトを公開)したい場合は、NGINXを立てれば良いようです。
 参考.NGINXを使用した静的コンテンツの提供
 https://www.ibm.com/cloud/blog/static-websites-cloud-object-storage-cos
※3 インターネット上に公開して良いファイルであれば、バケットごとパブリック・アクセスを許可すればOK
 参考.パブリック・アクセスの許可
 https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-iam-public-access

 参考.IBM Cloud Obje

元記事を表示

symbol-testnet-bootstrap (v0.9 以前)→ symbol-bootstrap (v0.10) update shellscript

※Symbol testnet node 自動構築 shellscript
https://qiita.com/dusanjp/items/7d1b82a18c97d7058f4b
を使用して testnet node を構築した node 向けです

これは 旧symbol-testnet-bootstrap(v0.9.6.4 含むそれより以前)で
動作している testnet node 用の symbol-bootstrap(v0.10 以降)への
update script です
OSの再インストールは 必要ありません

各々の設定している user名とパスワードで sshd portより ログインしたら
そのままの ディレクトリ に置いて 実行して下さい
file名は 何でも良いですw

#!/bin/bash

#input ip
echo “please input ip”
read ip

#input friendlyname
echo “please input friendly_name”
read f

元記事を表示

FFmpeg 画面を分割して複数動画を合成する

# 実行環境

Node.jsでの実行を想定しているためJavaScriptコードになります。
コマンドラインで同様のコマンドを打てばNode.js以外でも実行可能です。

# 画面の分割と複数動画の合成

画面を4分割して、左上、右上、左下に動画を合成した場合の例です。

“`javascript
const { execSync } = require(‘child_process’);

function overlay(input1, input2, input3, output)
{
const stdout = execSync(`ffprobe -i ${input1} -show_streams -print_format json`);
let streamInfo = JSON.parse(stdout);
// 幅、高さを取得
let width = streamInfo.streams[0].coded_width;
let height = streamInfo.streams[0].coded_height;

元記事を表示

FFmpeg 動画の前後に無音黒画面を挿入

# 実行環境

Node.jsでの実行を想定しているためJavaScriptコードになります。
コマンドラインで同様のコマンドを打てばNode.js以外でも実行可能です。

# 動画の先頭に無音黒画面を挿入

“`javascript
const { execSync } = require(‘child_process’);

function Insert_haed_blank(input, duration, output)
{
execSync(`ffmpeg -i ${input} -vf tpad=start_duration=${duration}:color=black -af “adelay=${duration}s:all=1” ${output}`);
}
“`

### パラメータ
– input:入力動画パス
– duration:挿入する無音黒画面時間(秒)
– output:出力動画パス

### コマンド内容

`-vf tpad=start_duration=${duration}:color=black`がvideo、
`-af “adela

元記事を表示

commander.js でシェル風のCLIツールを作る

Node.jsではCLIツールを作る手段として、`commander.js`や`inquirer.js`が使える。ここでは、`commander.js`を使ってシェル風のCLIツール(mkdir, rmのようなコマンドを打って操作する)を実現してみる。なお、定型的な作業を、ユーザに質問しながら実行するCLIツールを作る場合は`inquirer.js`を使った方が良さそうだが、ここでは扱わない。

# コマンド本体
事例として、文字列を追加・削除・表示するコマンドを作成した。`push`は文字列を配列に文字通りpushする。`pop`は最後にpushした文字列から取り除く。`show`は配列内の文字列を表示する。`exit`はプログラムを終了して、コマンドプロンプトに戻す。

これらのコマンドは、そのまま`program.parse()`を実行しただけでは、1回コマンドを実行してプログラム自体が終了してしまいあまり意味がないので、シェル風にする工夫を付け加える。

“`index.ts
import { createCommand } from ‘commander’;

const

元記事を表示

JSエコシステムぶらり探訪(3): npmとyarnとnode_modules

前回はNode.js単独での機能に焦点をあてて説明しましたが、Node.jsはnpm/yarnなどのパッケージ管理システムと組み合わせて使うことが想定されています。本稿ではライブラリの依存解決としての側面を中心に、npm/yarnの挙動を説明します。

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

## モジュールからパッケージへ

モジュールは、JavaScriptプログラムを複数のファイルに分割し、必要に応じてロードする仕組みでした。 (1ファイル = 1モジュール)

一方**パッケージ**は、複数のモジュールファイルをまとめて1つの独立した単位として扱う仕組みです。パッケージというより大きなまとまりを作ることで、バージョン番号を付与し、パッケージをパッケージレジストリに登録し、依存管理をすることができるようになります。

## Node.jsと `package.json`

パッケージはおお

元記事を表示

ALB + Lambdaでお手軽3分ベーシック認証

## 概要

ALBのリスナールールの変更とLambdaの追加でベーシック認証を行います。

ベーシック認証の処理の流れとしては以下となります。

– ALBで`Authorization`ヘッダーを検証する
– 認証OKであれば、正規のターゲットグループに転送する
– 認証NGであれば、Lambdaをターゲットとするターゲットグループに転送する
– Lambdaではベーシック認証を要求するレスポンスを返す(なお、ALBからのヘルスチェックに対しては`200`を返すようにします)

## 1. Lambda関数の作成

まず、ALBが存在するリージョンで、Lambda関数を作成します。

– `一から作成`を選択
– 関数名を入力(今回は`BasicAuth`とします)
– ランタイムは`Node.js 12.x`を選択
– 実行ロールは`基本的な Lambda アクセス権限で新しいロールを作成`を選択
– VPCは特に何も選択しない
– `関数の作成`ボタンを押下

![Lambda関数の作成](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

Jestで関数から呼ばれてる関数をspyOnする

関数の中で呼んでる関数を`spyOn`するのにかなり手こずったので、やり方を残しておきます。

## 確認環境

| 環境 | バージョン |
| —- | ———- |
| Node.js | 12.18.3 |
| Jest | 26.4.2 |

## やりたいこと

以下の実装のときに、`parentFunc()`を呼んだ時に`childFunc()`が呼ばれることをテストしたいだけです。

“`javascript
function parentFunc() {
console.log(‘called parentFunc’);
childFunc(‘XXXX’);
}

function childFunc(param) {
console.log(`called childFunc ${param}`);
}
“`

## 各ケース紹介

### Case1 そもそも構文がおかしい

テストするためには関数を export する必要がありますが、愚直過ぎて構文的に実行不能になるケースです。

“`javascri

元記事を表示

LINEボットでゲームブックを作った、ついでにシナリオエディタ作ったので完成

前回の投稿( [LINEボットでゲームブックを作ってみた]( https://qiita.com/poruruba/items/28c1c4ba95c4eaf2b739) )で、ゲームブックを作ったのですが、ついでにシナリオエディタも作りました。
これで完成です。

画面はこんな感じです。

シナリオ作成画面です。
テキストを入力したり選択肢を入力したり、背景画像を決めて、重ね合わせる人物画像を指定したりします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/e38b8379-01ea-2879-a143-cda54c562be5.png)

こっちが、画像ファイルのアップロード画面。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/cc9f43c1-4691-f653-bd45-ca69f9b8bb5f.png)

こっちが、音声ファイルのアップロード画面。

元記事を表示

v0.10.0用 Symbol-bootstrap update script

#v0.10.0用update script
※ このscriptは
自動構築 shellscript “b” で建てた v0.10.0 node 用です
https://qiita.com/dusanjp/items/505bf4f3598c7dd90461

サーバに ログイン

vi up
“i” 入力で編集モードにする
以下をコピペ

#!/bin/bash
#ip/friendlyname set
ip=””
friendlyname=””

cd symbol-bootstrap
symbol-bootstrap stop
cd
sudo rm -rf symbol-bootstrap
docker system prune -a

#Symbol Bootstrap
sudo npm install -g symbol-bootstrap
symbol-bootstrap -v

#make configfile
mkdir -p symbol

元記事を表示

プログラミング言語でSQLite始め

SQLの経験がほぼない状態だけど、
Node.js、C#、Python3、HSP3でのSQLiteの扱い方を学んだ。
(一応SQL文のみでの動作も)

Node.jsはなんとなくTypeScriptで書いているので、各自動かす場合は型表記を削除すること。
(多分まとめのPromiseだけ)

# 実行環境
* Windows10 64bit
* Sqlite 3.33.0 2020-08-14
* TypeScript Version 4.0.3
* Node.js v12.18.4
* .NET Core 3.1.402
* Python 3.8.3
* HSP : Hot Soup Processor ver3.5

# 使用ライブラリ
## Node.js
[node-sqlite3](https://github.com/mapbox/node-sqlite3/wiki/API)
下記でインストール。

“`sh
> npm i sqlite3
“`

## C#
[Microsoft.Data.Sqlite](https

元記事を表示

FCMアクセストークン取得にプロキシを使用する場合に気を付けるべきこと

# はじめに
FCMを使用したPUSH通知を行うアプリケーションを開発する際に、プロキシを使用してFCMからアクセストークンを取得するようにしたい場合に起こる影響についてまとめました。

# 何が問題だったのか
私の開発していたアプリケーションは様々な種類の機能を集めたもので、nodeのexpressを使用しています。FCMにアクセスしてアクセストークンを取得する処理はそのアプリケーションの中の一機能に過ぎす、通信を行っている機能は他にも複数ありました。それらの機能は、別スレッドでアクセストークン取得処理と同タイミングで実行される可能性があります。その際、それらの通信がプロキシを使いたくない通信であった場合でも、[googleapisのREADME][link2]に載っている方法でプロキシを設定していると、その設定がアクセストークン取得処理以外の通信にも影響が出てしまうといったものです。

# 問題のプロキシ設定方法
[googleapisのREADME][link2]では、`HTTP_PROXY`という環境変数に使用するプロキシのurlを設定するといった方法が紹介されていました。しか

元記事を表示

高校生がリアルタイム言語変換のサービスを作ってGithubにPushしてみた。

高校生でプログラミングが好きなレオです!!

今回はリアルタイムで言語変換できる[サービス](https://github.com/lra21711214/transchat)を作ったので、
紹介とどのように作ったのか少し説明したいと思います。

※この記事は、Node.jsとPython,Socket.ioを使える前提で話を進めていきます。

# 1. アイディア
アイディアは[WeChat](https://www.wechat.com/ja/)の翻訳機能を使っていた時に思いつきました。
僕が中国でお買い物をする際に店員さんと、[WeChat](https://www.wechat.com/ja/)を使って会話をすることがあるのですが、リアルタイムではなく、毎度翻訳をかけないと行けなかったので、リアルタイムで翻訳できて、友達交換もしなくていいサービスを作ろう!と思ったのがきっかけです。

# 2. 使用した言語と技術

使用したプログラミング言語はNode.jsとPythonです。
主にNode.jsを使っていて、Node.js上で[Socket.io](https://socke

元記事を表示

Electron(v9以降)でrequire(“hoge”).remoteを使えない時のためのtips

#Electronで開発を始めようと思ったらつまづいた

Electronではレンダー側でnodeのモジュールを使う際にはセキュリティの問題から初期設定で使用不可となるよう設定しており、以前のバージョンと比べてセキュリティが向上している。

それに従って、以前までのコードでは動かなくなっている部分もあるようなのでtips

“`javascript:main.js
function createWindow () {
// Create the browser window.
const win = new BrowserWindow({
width: 800,
height: 600,
})
//↑これではレンダー側の処理でnodeモジュールを使用することができない。

// and load the index.html of the app.
win.loadFile(‘index.html’)

// Open the DevTools.
win.webContents.openDevTools()
}
“`

v9(2020年

元記事を表示

npm WARN npm npm does not support Node.js vXX.X.X と出る場合の対処法

# npm WARN npm npm does not support Node.js vXX.X.X と出る場合の対処法
npm installしたときに以下のように出る場合の対処法

“`
>npm i
npm WARN npm npm does not support Node.js v14.6.0
npm WARN npm You should probably upgrade to a newer version of node as we
npm WARN npm can’t make any promises that npm will work with this version.
npm WARN npm Supported releases of Node.js are the latest release of 6, 8, 9, 10, 11, 12.
npm WARN npm You can find the latest version at https://nodejs.org/

“`
メッセージそのままの問題が起きていて、node.js

元記事を表示

Amazon Echo で Google Drive 上の mp3 を 再生する (その1)

(※2020/10/3 11:04、2.4.に `rootFileId` 書き換えについて追記)

# 今回の実装機能

* 発話により再生するプレイリストを指定する
* 指定されたプレイリスト (json 形式) に記載された曲を記載順に 1 回ずつ再生する

# はじめに

Google Play Music が終了し、YouTube Music に完全移行するまで[残り僅か](https://support.google.com/googleplaymusic/answer/9973710?hl=ja)になりました。
Google Play Music では無料版でもスマートスピーカーでプレイリストやアルバム、曲を指定して再生することができましたが、移行先の YouTube Music では Premium 会員にならないと指定再生ができません。曲指定のためだけに Premium 会員になるほどの情熱はありませんので、Google Home は諦めて Amazon Echo (Dot) で Google Drive 上の mp3 を再生するスキルを作ります。

## プレイヤーの

元記事を表示

【TypeScript】僕のチートシート

## 参考になる記事
早く理解したい方は、下記の記事と Udemy を使って最速で学習しましょう!
[TypeScriptの型入門 – Qiita](https://qiita.com/uhyo/items/e2fdef2d3236b9bfe74a)
[超TypeScript入門 完全パック(2020) \| Udemy](https://www.udemy.com/course/typescript-complete/)

随時更新していきます!!

[TODOリスト]

– interface
– implements
– デコレータ

## 変数

“`typescript
const text: string = “text”

// リテラル型
const lite: ‘foo’ = ‘foo’; // ‘foo’ しか入れることができない

// Union型
const union: string | undefined = “union”
“`

## 関数

“`typescript
// 引数 返り値 の順で実装
function method(arg

元記事を表示

async/awaitの仕組みメモ

async/awaitを学習する中で実際に書いて試してみたのでメモ

“`javascript
const makeRequest = (value) => {
console.log(‘Request received’)
return new Promise((resolve, reject) => {
if (value === ‘Google’) {
resolve(value)
} else {
reject(value)
}
})
}

const processRequest = (response) => {
return new Promise((resolve, reject) => {
console.log(‘Processing your request…’)
resolve(`Here is the response from ${response}`)
})
}

const sayHi = async (receiver) => {
console.log(`

元記事を表示

Node.jsを利用してフォルダ作成を効率化してみる

# はじめに
「001」「002」「003」・・・「100」のような大量のフォルダを作成する必要があり、手作業でやるのは馬鹿馬鹿しいのでNode.jsで作ってみました。Windowsで動作します。

“`mkdir.js
const fs = require(‘fs’)

// プログラム実行ディレクトリ配下を指定
const rootPath = process.cwd() + ‘\\’;

for (let i = 1; i <= 100; i++) { const num = ('000' + i).slice(-3); const directoryPath = rootPath + num; fs.stat(directoryPath, (error, stats) => {
if (error) {
if (error.code === ‘ENOENT’) {
fs.mkdir(directoryPath, (error) => {
if

元記事を表示

【Node.js】npmの導入とpackage.jsonを基礎からまとめてみた

# npmとは?

– **Node Package Manager**の略
– `Node.js`のパッケージマネージャー

# Node.jsとは?

サーバー側で動く`JavaScript`のこと。

# パッケージマネージャーとは?

– `Node.js`の便利な機能を集めたもの。ライブラリ。
– 自分が一からコードを書かなくてもよくなる。

# package.json

– json形式のファイル
– このファイルで`Node.js`を使ったプロジェクトを管理する。
– 親ディレクトリに含まれるファイルが一つのパッケージとなる。

# npmを使ってみる。

それぞれのバージョンを確認する。

“`
$ node -v
v12.18.4
“`

“`
$ npm -v
6.14.6
“`

パッケージを作成したいディレクトリ内で`npm init`を実行。色々聞かれるので、それぞれ答えていく。(わからなければ、適当に答えてあとで`package.json`を編集すればOK)

完了すれば、`package.json`が自動生成されているはず。

## pac

元記事を表示

OTHERカテゴリの最新記事