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

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

【LINEWORKS API】新機能!BOT でファイルを送受信!

ver 2.9 で(個人的に)待望の BOT でのファイル受信が追加されました!ヾ(´∀`)ノ
[[リリース] アップデートのお知らせ (8月25日)](https://developers.worksmobile.com/jp/notice?lang=ja&detailUrl=https%3A%2F%2Fjp1-notice.worksmobile.com%2Fview%2F%23%2Fdetail-view%2F497%3Fusess%3D1%26serviceType%3D12%26serviceLanguage%3Dja_JP)

ではではさっそく使ってみましょう!

# ngrok を使って Callback を受信

おなじみ ngrok さんの登場です!
もう 2年の付き合いになりますか…長いような短いような。
本当に色々助かっております。今回もよろしくお願いしますね!

・・・え、ngrok さんを知らない!?Σ( ゚Д゚)
ngrok さんはローカル PC の外部公開用 URL を取得してくれるステキモジュールなんですよ!
細かい設定は、過去の記事になりますがこちらの

元記事を表示

Arduino Due✖️Ethernet shield2をつかってNode.js✖️ExpressでAPIをたたく

# はじめに
最近は、ESP32でWiFi通信をして何か作ってばかりです。
そういえば有線LANにつないでインターネット接続したことがあまりありませんでした。
なので、有線LANをつなぎNode.jsとExpressをつかったAPIをArduino Dueからたたいてみます。

# 必要なもの、環境
– Arduino Due(Ethernet shield2がつかえれば良いのArduino Unoでも構いません)
– Ethernet shield2
– Node.js (v12.13.0)
– Express

# プログラム
## Node.js側のプログラム
node.jsをインストールしている前提です。
適当なディレクトリに下記を実行します。そしてプログラムはindex.jsに書きます。

“`
npm init
npm i express
touch index.js
“`

“`javascript
var express = require(‘express’);
const bodyParser = require(‘body-parser’);
var htt

元記事を表示

Amazon Linux2 で Puppeteer/Chrome headless ブラウザが動かない

## はじめに
Amazon Linux2 上で、Puppeteer から Chrome を起動しようとしたところ、起動しなかった。ググったところ、こうすれば動く!みたいなものはいくつか出てきたが、「なんで?」が不明なものが多かった。

先に結論として、Chrome を起動するために必要なライブラリが足らなかったのが原因で、それは、yum install では、すんなり入らない(ものがある)ので、調べて入れる必要がある。

## 実行環境
“`
$ node -v
v14.9.0
$ npm -v
6.14.8
“`

## Chrome のインストール
[puppeteerを使ってCentOSでheadless chromeを動かす](https://qiita.com/isante-kishiyo/items/309296e64ed34d3ee7b8)

ここに書いてある通り。

以下を追加

“`/etc/yum.repos.d/google.chrome.repo
[google-chrome]
name=google-chrome
baseurl=http://dl.g

元記事を表示

Kotlin/JSでもサーバーサイドしたい!

こんにちは、マヤミトです。
今回はKotlin/JSとkotlinx-nodejsを使ってサーバーを立てる簡単なサンプルを作ってみました。

# kotlinx-nodejsの紹介
kotlinx-nodejsは、Node.jsのAPIのKotlin/JS向けの型定義を提供します。TypeScriptでいう `d.ts` ファイルがまとまっていると考えるとわかりやすいかもしれません。
https://github.com/Kotlin/kotlinx-nodejs

# 導入

`build.gradle` に依存を追加し、targetをnodejsにします。

“`gradle:build.gradle.kts
repositories {
mavenCentral()
jcenter() // 追加
}

dependencies {
implementation(kotlin(“stdlib-js”))
implementation(“org.jetbrains.kotlinx:kotlinx-nodejs:0.0.7”) // 追加
}

元記事を表示

【Gatsby】node最新バージョンでyarnするとエラーが出るのでnodeのバージョンを変えてyarnしてみた

gatsby.jsのテーマをcloneして使おうとした時に“`yarn“`の時点でエラーが出たのでnodeのバージョンを変えて挙動を確認しました。

## Nodeバージョン
* v14.9.0(最版)
* v12.18.3 (LTS:長期サポート版)
* v10.22.8 (LTS:長期サポート版)
* v8.17.0 (LTS:長期サポート版)

yarn、gatsby、Macのバージョン

“`
% yarn -v
1.22.4
% gatsby -v
Gatsby CLI version: 2.12.87
% sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.6
BuildVersion: 19G2021
“`

## 検証に使ったGatsbyテーマ
[GitHub](https://github.com/niklasmtj/gatsby-theme-julia)
***gatsby-theme-julia***とういうテーマを“`git clone“`して使いました。

## 検証方法

* gatsbyのテー

元記事を表示

【Node.js】LTSバージョンのコードネームの意味

## LTSバージョンのコードネーム

“`nvm alias“`で確認すると
**lts/<コードネーム> -> <バージョン>**
とそれぞれNode.jsのLTS(長期サポート)バージョンにはコードネームが割り振られています。アルゴン、カーボン、、うすうす規則性は見えてきますが気になったので調べました。

![nodecodename.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/692347/e354890b-c49e-80a0-d1fe-7255405eece6.jpeg)

>* v4.9.1 → argon(アルゴン:原子番号18、元素記号はAr。)
* v6.17.1 → boron(ホウ素:原子番号5、元素記号はB。)
* v8.17.0 → carbon(炭素:原子番号6、元素記号はC。)
* v10.22.0 → dubnium(ドブニウム:原子番号105の元素、元素記号はDb。)
* v12.18.3 → er

元記事を表示

EXPOフォトフレーム -人類の進歩とロゴとの調和-

# はじめにから、おわりにの一歩手前まで…

> 逃げない、はればれと立ち向かう、それがぼくのモットーだ

…どうも僕です。

最近の注目のニュースといえば大阪・関西万博ロゴマークの決定ですね。
そう!あの「いのちの輝きくん」です。

![logo_expo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/218189/56746f51-b25d-332d-c977-6bfebf1b876c.png)
> 引用元: [公益社団法人2025年日本国際博覧会協会](https://www.expo2025.or.jp/)

皆さんはどんな印象でしたでしょうか?
twitterでも話題になったようですが賛否両論あるみたいですね。

そして、最近はこんなニュースも出ていました。

[つかみはOK、大阪万博ロゴ 賛否両論も……創作意欲かき立てる?](https://www.itmedia.co.jp/news/articles/2008/31/news036.html)

ロゴをモチーフにして、パンや

元記事を表示

Azure Bot Service を node.js で作ってスクリプトで自動更新する方法

Microsoft Bot Framework(node/JavaScript) v4 で作成した BOT を、スクリプトで Azure Bot Service に自動デプロイする方法を調べました。
Azure Pipeline とか Visual Studio 2019 とかに載ってしまえば楽なのかも知れませんが、自力で自動化したい場合の情報が探しづらくて苦労しました。

## 0. 準備するもの

– コマンドプロンプトか PowerShell(Core) か Bash など

cURL を使うだけなので Windows でも macOS でもどちらでもOKです(私は Windows を使っています)。

## 1. Bot Service を作る(JS Echo bot)

こちら、

– [AzureでLINEのbotを作ってみる | cloud.config Tech Blog](https://tech-blog.cloud-config.jp/2019-10-17-azure-bot-service/)

を参考に、Azure に Bot を作成します。言語は node

元記事を表示

gulp を使用したSCSS(SASS)環境の構築

普段はvsvcodeの拡張機能「Live Sass Compiler」を使用しているが、gulpを使用する機会があったので覚え書き

**事前準備**
Node.js [https://nodejs.org/ja/](https://nodejs.org/ja/)
※インストール方法は@sefoo0104さんが紹介してくれているのでそちらを参照
・[Node.jsをインストールする](https://qiita.com/sefoo0104/items/0653c935ea4a4db9dc2b)

gulp(ガルプ)について詳しく知りたい方は公式サイトもしくはCodeGridを参照
・gulp [公式サイト](https://gulpjs.com/)
・CodeGrid [現場で使えるgulp入門](https://app.codegrid.net/entry/gulp-1)

**モジュール**
Node.jsの設定が終わったら以下のモジュールをインストール
※今回はカレントディレクトリにインストール

一人で開発する場合(“devDependencies“)

“`ruby:

元記事を表示

Nuxt.jsの動的ルーティングでQiitaっぽい構成を作ってみるメモ

Qiitaと同様の構成を作ってみたメモです。

## 通常のNuxt.jsの動的ルーティング

こんな構成にすると

“`
pages/
–| users/
—–| _id.vue
–| index.vue
“`

`https://ドメイン/users/<ユーザー名>` みたいな構成を作ることが出来ます。

> https://ja.nuxtjs.org/guide/routing#%E5%8B%95%E7%9A%84%E3%81%AA%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0

このユーザー名の部分がURLにアクセスした際の値で動的に変わります。

## Qiitaっぽい構成って?

(2020年9月時点)Qiitaの記事は以下のような構成です。

“`
https://ドメイン/<ユーザー名>/items/<記事ID>
“`

例: `https://qiita.com/n0bisuke/items/ceaa09ef8898bee8369d`

先ほどの`ユーザー名`だけが動的な場合と違って、

元記事を表示

Nuxt on Dockerでpuppeteer使ってスクレイピングする。

# はじめに
あーあ、スクレイピングしたいな。

ということで Nuxt on Docker でスクレイピングします。
node系だと[puppeteer](https://github.com/puppeteer/puppeteer)というライブラリがスクレイピングするのにおすすめっぽかったので、NuxtのserverMiddlewareからサクッとスクレイピングします。

あまり人に迷惑をかけてはいけないと言われて育ったので、スクレイピングは自分のサイトにします。(ログイン不要だよ。ぜひ使ってみてね♪)
[toribure | ひとりでもチームでも使えるシンプルイズベストなブレストツール](https://toribure.herokuapp.com/)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254216/f72c8d79-2328-92bf-08cf-5e71695f1363.png)

やや宣伝ですね。トップページにかわいい鳥(いらすとや)の画像があります。今回はこれをス

元記事を表示

LINE Blockchain を Node.js からたたきはじめてみた

### どこかに nodejs SDK があるかもしれませんが、たぶん api exprorer のサンプルが python だけっぽいけどすぐに node.js も追加されそうな気がしますが、ちょっと生でたたきはじめてみました。

#### [Tutorial Step 1. Create your service / 4b. Check the result with API](https://docs-blockchain.line.biz/service-tutorial/Step1?id=step1-4)

“`bash
$ npm install axios
“`

“`node.js
const crypto = require(‘crypto’);
const axios = require(‘axios’).default;

const apikey = ‘apikey’
const secret = ‘secret’;

axios.defaults.baseURL = endpoint;

function jsonToQueryString(json,

元記事を表示

ECS(Node.js + TypeScript)からAWS DynamoDBから最新のデータを1件のみ取得するまで

バッチ処理をNode.js + TypeScriptで作成しており、そのバッチをECS on Fargateで起動しAWS DynamoDBから最新のデータを1件のみ取得する方法を紹介します。

その中でハマったポイントがいくつもあったため、同じ轍を踏むことがないようポイントをまとめておきます。

## TL;DR

“`typescript
import * as AWS from ‘aws-sdk’;
import { DocumentClient } from ‘aws-sdk/clients/dynamodb’;

AWS.config.credentials = new AWS.ECSCredentials({
httpOptions: { timeout: 5000 }, // 5 second timeout
maxRetries: 10, // retry 10 times
});

const dynamodb = new AWS.DynamoDB();

(async () => {
const params: DocumentClient.Query

元記事を表示

Lambda(node.js)におけるaws.docClient.get(…).promise() のsinon.stubのつくりかた

#やりたいこと
以下のlambdaのテスト対象コード(main.js)をMochaでtestするときに
docClient.get(…).promise() 部分のsinon.stubをつくりたい

“`javascript:main.js
const aws = require(“aws-sdk”);
const docClient = new aws.DynamoDB.DocumentClient(…);

async function main(event) {

await docClient.get(…).primise();

}
“`

結論のテストコード
(***で囲まれているところがスタブのつくり方、それ意外はモジュールの設定)

“`javascript:main_test.js
const assert = require(‘assert’);
const sinon = require(“sinon”);
const aws = require(“aws-sdk”);
const docClient = new aws.Dyna

元記事を表示

eject後のwebpack.config.jsを1から読み解いてみる②

## はじめに
この記事は[前回の記事](https://qiita.com/daiki-murakami/items/52fd80521d51ecaa5653)の続きです。前回の記事を見ていない方はこちらからご覧ください。

## Ln274-Ln320

“`javascript
resolve: {
// This allows you to set a fallback for where webpack should look for modules.
// We placed these paths second because we want `node_modules` to “win”
// if there are any conflicts. This matches Node resolution mechanism.
// https://github.com/facebook/create-react-app/issues/253
modules: [‘node_modules’, paths.appNodeModules].conca

元記事を表示

Nuxt.jsのサーバフレームワークをKoa.jsに変更する

## 選択できなくなっていたサーバフレームワーク
Nuxt.jsインストール時にはExpressやKoa.jsなどのサーバサイドフレームワークを選択できていたと思うんだけど、最近のバージョンだとそれができなくなっていたので、フレームワークをKoa.jsに変更する方法を記載する。Expressでも同じかと。

## デフォルトでは “connect”
https://ja.nuxtjs.org/api/configuration-servermiddleware
で次のように記載されているように、デフォルトではconnectが適用されるらしい。

“`
Nuxt は内部で connect のインスタンスを作ります。
それはミドルウェアをスタックに登録したり、 外部サーバーを
必要とせず に API などのルートを増やす事を可能にしてくれます。
connect 自体はミドルウェアで、登録されたミドルウェアは
nuxt start と express-template のようなプログラム的な
使用法を持つミドルウェアとして使用されます。
“`
connectのままでもいいんだろうけども、

元記事を表示

anyenv+nodenvでnode.jsの複数バージョンを管理する(MacOS用)

# anyenv+nodenvでnode.jsの複数バージョンを管理する(MacOS用)

## 概略

MacOS用のバージョン管理方法です。

node.jsのバージョン管理マネージャー「nodenv」を通して、.node-versionでnode.jsのバージョン情報を共有しつつ、自動で切り替わるように設定します。

xcode→Homebrew→anyenv→nodenvの順番でインストールの手順で実施します。

自動切り替え最高の体験。

#### リリース情報確認URL

– [Homebrewのリリースノート](https://github.com/Homebrew/brew/releases)
– [anyenvのリリースノート](https://github.com/anyenv/anyenv/releases)
– [nodenvのリリースノート](https://github.com/nodenv/nodenv/releases)
– [Node.jsのリリースノート](https://nodejs.org/ja/download/releases/)

###

元記事を表示

httpとwebsocketの兼用(統合)サーバーを作る

一例です。

# 前準備

## 前提・環境
– node.js: v10.16.0(async/awaitをサポートしている程度のバージョン)
– npm: v6.14.2(上のnode.jsとマッチするバージョンであればOK)
– windows 10 64bit

※ async/awaitは簡易化のために使用してるだけなので、必須ではないです。

## ディレクトリ構造
“`
[ルートフォルダ]
|- public
|- index.html
|- utils
|- getLocalIp.js
|- server.js
|- …その他package.json等
“`

## 依存モジュールのインストール
`npm i node-static ws`

# サーバー側
“`./server.js
const { createServer } = require(“http”);
const { Server: FileServer } = require(“node-static”);
const { Server: WebSocketServer } = req

元記事を表示

IMI住所変換コンポーネントを改造してリバースジオコーディングに対応してみた

先日、経産省が公開する「住所変換コンポーネント」についての性能を調べた記事を投稿しました。

IMI住所変換コンポーネントでいろんな住所を正規化してみた
https://qiita.com/uedayou/items/4c9d30fc031a9bf6762e

「IMI住所変換コンポーネント」は、表記にゆれがある住所表記を正規化してくれるとても便利なツールです。

たとえば

“`
霞が関2 -> 東京都千代田区霞が関二丁目
“`
のようになります。

このツールのもう一つの大きな特徴として、その住所に対する位置情報(緯度経度)も取得することができる点があります。

“`
霞が関2 -> 東京都千代田区霞が関二丁目 -> {“緯度”: “35.675551”, “経度”: “139.750413”}
“`

所謂「**ジオコーディング機能**」があります。
これは、ツール内にあらかじめ住所に対する位置情報データが含まれることを意味し、作り方によってはこの逆、位置情報(緯度経度)から住所にも変換することができるのではないか?と思いました。

“`
{“緯度”: “35.6755

元記事を表示

80mm フィルム (58mm フィルム) を発明してみた

レシート用のサーマルロール紙 (幅 80 mm or 58 mm) を映画のフィルムにしちゃいます!

![01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669512/ce499c70-f581-a645-5313-0314b1c2df80.jpeg)

[receiptline シリーズ最終回](https://qiita.com/dopperi46/items/1d2b92ba6a4cb6f79c19)では、インスタントカメラを作って、最後にレシートプリンターを自撮り連写しました。
この写真を眺めていたら、動画もできるんじゃないか?と思ったのです。

![02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669512/77c608be-91f6-7fc4-cfd9-2d8e1d38588e.jpeg)

# 自動用紙カットを解除

[receiptline](https://github.com/receip

元記事を表示

OTHERカテゴリの最新記事