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

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

nodenvを使ってnode環境を作る

# はじめに

ちょっと仕事で AWS Lamdbaを使うことになりそうなので、いまさらながらお勉強。
WSL2のUbuntuに開発環境を作って、試してみようと思います。

## 環境
Windows 10
WSL2
Ubuntu 20.04 LTS

## nodenvをインストールする

git clone で必要なファイルを取得します。

“`bash
git clone git://github.com/nodenv/nodenv.git ~/.nodenv
git clone git://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build
“`

nodenvにパスを通します。

“`bash
echo ‘export PATH=”$HOME/.nodenv/bin:$PATH”‘ >> ~/.profile
echo ‘eval “$(nodenv init -)”‘ >> ~/.profile
source ~/.profile
“`

## Node.jsをインストールする

インストール可

元記事を表示

スクワットしないとジェイソン・ステイサムに撃たれるLINE bot ~SQUAT or DIE~

Qiitaで「ジェイソン・ステイサム」というタグを密かに育んでいるたわちゃんです。
もちろん、今回も愛しのステイサムたんがテーマ!
ぜひ、最後までご覧ください♪

#今回のステイサム作品
自粛により13キロも太ってしまった私。
空いた時間にスクワットしたいけどヤル気が出ないので、スクワットしないとステイサムに殺●れるLINE botを作りました。
その名も「SQUAT or DIE」です。

#出来たもの

※キャプチャ撮る時LINE botの名前変えるの忘れてた・・・「SQUAT or DIE」です。
[![Image from Gyazo](https://i.gyazo.com/2bcf07dfa0cccbbac697f7564b9205a8.png)](https://gyazo.com/2bcf07dfa0cccbbac697f7564b9205a8)

基本、私からの問いかけには一切無視というドS設定ですが、スクワット表明をすると反応してくれます。

ステイサムたんの命令は絶対・・・!すぐにスクワット開始です。
__ちなみにTシャツに反応した方は、そっとコメントください。_

元記事を表示

【Node.js】Expoプッシュ通知を一斉送信するWebAPI|配列を任意の数に分割をする

# はじめに
現在Expo ReactNativeを使ってネイティブアプリ開発をしています。
Expoを使ってプッシュ通知を送るためにプッシュ通知のTokenを1つ、1つPOSTリクエストを飛ばしてもいいのですが、Expoの仕様では最大100個のTokenをまとめてPOSTできる。そこでN個ずつに配列を分割して二次元配列にして処理する方法を紹介します。

# 例
以下のような長さ75の配列があるとする、それを10分割して余った分は10個未満になっても分割をする。
今回は長さ75の配列を10個づつ分割して二次元配列にする。

## 処理前
スクリーンショット 2020-08-12 午後6.59.47.png

## 処理後
スクリーンショット 2020-08-12 午後7.</p></blockquote>
</blockquote>
<aside class='widget widget-post'>
<div class='tag-cloud-link'>JavaScript</div>
<div class='tag-cloud-link'>Node.js</div>
<div class='tag-cloud-link'>MySQL</div>
<div class='tag-cloud-link'>WebAPI</div>
<div class='tag-cloud-link'>expo</div>
</aside>
<div><a style='width:100%;' class='btn__link' href='https://qiita.com/merarli/items/9d427aee9065950a45f7'>元記事を表示</a></div>
<h3 id=TypeScript + Node.jsプロジェクトにESLint + Prettierを導入する手順2020

# TL;DR

https://github.com/notakaos/typescript-node-base-with-eslint-prettier

完成形のソースコードはこちら↑

# この記事の趣旨

[TypeScript + Node.js プロジェクトのはじめかた2020](https://qiita.com/notakaos/items/3bbd2293e2ff286d9f49) で作成したTypeScript + Node.jsのプロジェクトに `ESLint` / `Pretiter` / `husky & lint-staged` を導入する手順を紹介します。

今回導入するツールとバージョンは以下になります。

項目 | バージョン
————|———–
ESLint | 7.6.0
Prettier | 2.0.5
husky | 4.2.5
lint-staged | 10.2.11

# 動作環境

node と npm はインストール済みとします。

“`sh
$ node

元記事を表示

【共有用】Windows10PCにNode.jsをインストールする手順

本記事では、Windows10PCにNode.jsをインストールする手順を紹介いたします。

##Node.jsとは
サーバーサイドで動かすことができるJavaScriptです。

JavaScriptは近年多くのWebサイトで活用されており
例えばカーソルを当てるとメニューが飛び出したり
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/d5e642a5-cbb7-8812-7163-4ce225269728.png)

クリックすると画像が拡大するような
動きのあるWebサイトを作成するのに不可欠な言語です。

Node.jsはこのJavaScriptをサーバサイド(裏側の仕組み)で活用することができる仕組みになります。

**公式では以下のように書かれています**
Node.js はスケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です。 以下の「Hello World」の例では、たくさんの接続を同

元記事を表示

【Node.js 超入門】Node.jsとExpessを使ってCRUD処理できるサーバサイドの実装をする!

# 【Node.js 超入門】Node.jsとExpessを使ってCRUD処理できるサーバサイドの実装をする!

【Node.js 超入門】という参考書を読んで、Node.jsで実装した内容を備忘として書きます。

今回は、データベースを使って画面からユーザ情報を登録、更新などCRUD処理できるアプリケーションを作成します。
メインとしてNode.jsとExpressを使い、サーバサイドの処理を作ります。
データベースはMySQLを使います。

大まかな流れとしては、
・環境構築
・コード実装
・動作確認

続きはこちらの記事にまとめています!
https://masa-enjoy.com/nodejs-learning1

元記事を表示

Alibaba Cloud ECSへのNode.jsのインストールと設定

このチュートリアルでは、**Alibaba Cloud ECS**インスタンスに**Node.js**をインストールして設定します。

*本ブログは英語版からの翻訳です。オリジナルは[こちら](https://www.alibabacloud.com/blog/install-node-js-on-alibaba-cloud_595226)からご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。*

#前提条件
– Alibaba Cloud [Elastic Compute Service (ECS)](https://www.alibabacloud.com/product/ecs?spm=a2c65.11461447.0.0.3a412358EaeWFK)を有効にし、有効な支払い方法を確認する必要があります。新規ユーザーの場合は、新規アカウントで[300ドル~1200ドル相当のAlibaba Cloudクレジットを獲得](https://www.alibabacloud.com/referral?spm=a2c65.1146

元記事を表示

【Deno】denonを利用してのscripts管理

## 背景
– Deno利用時に以下の点が気になったため、Node同様に可能なのか調査することに。
– `deno run –allow-net –allow-read server.ts`のような実行コマンドの長さを簡略化して、各種権限管理をしたい。
– **npm scripts**のように各環境や種類毎に管理できるようにしたい。
– Nodeでのnodemonのようなオートリロード環境の仕組みにしたい。

## 結果

### denon
– 調査の結果、上記3つの要望が可能である[denon](https://deno.land/x/denon@2.3.2)を導入することに。
– denonとは、[nodemon](https://github.com/remy/nodemon)のdeno代替であり、柔軟かつ高機能に設定が可能なツール。
– 設定ファイルは、以下の3つの形式で記述することが可能。
– json: `denon.json`
– typescript: `denon.config.ts`
– yaml: `denon.yml`

###

元記事を表示

Nuxt + ExpressでDockerの状態を見てみる

## 自己紹介
[Ateam Lifestyle Advent Calendar 2019](https://qiita.com/advent-calendar/2019/ateam-lifestyle) の7日目は
株式会社エイチームライフスタイル 名古屋開発部でエンジニアとしてアルバイトをしている @takaHAL が担当します!

## 概要
Nuxt.js と ExpressでAPIを作ってDockerの状態を取得してみます。

利用したもの 

– Nuxt.js (v2.12.0)

– Vuetify.js

– Express

– Docker

## プロジェクト作成
“`
$ yarn create nuxt-app dockerstatus
“`

いくつか質問されますが下記を選択しました

? Choose custom server framework

– Express

? Choose UI framework

– Vuetify.js

ディレクトリ移動 します

“`
$ cd dockerstatus
“`
##

元記事を表示

【初心者向け】Vue+API Gateway+LambdaでサーバレスWebアプリを作った際に遭遇した問題

#概要
「AWSを使って、サーバレスアプリを作りたい!」と思い実践したのですが、Lambda関連で結構な壁があったので備忘がてら残します。

ハマりポイントは以下3つ。

– LambdaのResponseは特定のJSON形式でないとNGな話
– API連携の際に、CROS Policyでエラーになった話
– APIに認証を噛ませる際は、accessTokenではなくidTokenを使用する話

##LambdaのResponseは特定のJSON形式でないとNGな話

今回はフロントサイドはvueで作成、そこからAPIGatewayを通してLambdaのFunctionを呼び出すという構成でした。
このFunctionの返却の仕方は何でもよい訳ではなくJSONの形式が決まっています。

参考:https://aws.amazon.com/jp/premiumsupport/knowledge-center/malformed-502-api-gateway/

以下は、Lambdaを通してTwitterに投稿する関数の例です

“`js

exports.handler = (e

元記事を表示

Next.jsで静的HTMLエクスポートしたアプリをローカルで確認する方法

## 経緯
[Next.jsの静的HTMLエクスポート機能(Static HTML Export)](https://nextjs.org/docs/advanced-features/static-html-export)を使うと、サーバーにNode.jsを必要とせずに、クライントのみで実行できる静的HTMLにアプリを出力することできます。

ただし、`create-next-app`でスキャフォールディングしたプロジェクトに用意されている`dev`コマンドで起動したアプリはサーバーサイドレンダリング(以下SSR)が有効になっており、静的HTMLのみの確認ができません。

そこでNext.jsで静的HTMLエクスポートしたアプリをローカルで確認する方法を調べました。

## 確認環境

– Node.js – 12.4.1
– Next.js – 9.5.2

## 設定方法

サンプルプロジェクトを作成します。すでに作成済みの場合は飛ばします。

“`bash
$ npx create-next-app my-static-site
$ cd my-static-site

元記事を表示

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

## はじめに
最近ReactやGraphQL, TypeScriptの環境構築をやっているのですがWebpackがあまりに難しすぎて挫折しかけたのでWebpackに対する苦手意識をなくすためにもwebpack.configの内容を1から調べていこうと思います。僕と同じくWebpackの内容の多さに絶望した方の助けになれば幸いです

## 動作環境
– npm 6.14.5
– node.js 14.3.0
– create-react-app 3.4.1

## Ln1-Ln51
“`javascript
use strict
“`
strictモードの呼び出し
– 一部の問題が起こりやすいコードをエラーとして処理する
– javascriptの処理を高速化する

strictモードについて細かく書くとそれだけで1記事分になりそうなので細かい違いは[こちら](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Strict_mode)をご参照ください

“`javascript
const fs = re

元記事を表示

Teachable Machineで学習したデータをNode.jsでシンプルに利用する

# いい感じのサンプルがなかった
[node-red](https://www.npmjs.com/package/node-red-contrib-teachable-machine)や[enebular](https://enebular.com/)とはTeachable Machineの連携が結構あったり、フロントエンド側ばかりたったので、Node.jsで画像ファイルを読み込んで判定するシンプルな実装をメモ

https://www.npmjs.com/package/@teachablemachine/image
ここもやはりフロントエンドのサンプルしかなくて…

https://www.tensorflow.org/js
tensorflowをそのまま利用しようとも考えたけど、もっとTeachableMachineに特化して使いやすくできるのでは…

# インストールしたもの

– @teachablemachine/image: 0.8.4
– @tensorflow/tfjs: 2.1.0
– canvas: 2.6.1
– jsdom: 16.4.0

“`sh
np

元記事を表示

GithubのプロフィールにTwitterのツイートを表示する

# はじめに
今年になってからGithubのプロフィールに好きな文面を追加できる機能が追加されました。
既に色々なサービスが開発されていています。

# プロフィールに最新のつぶやきを載せたい!
唐突ですが、プロフィールページにつぶやきを載せることはできないかなと思い、調べてみました。

# どうやって載せる?
結論としては、以下のように実装しました。

1. Twitter APIを叩いて、ツイートを取得する
2. 取得したツイートをSVG形式に変換
3. これらのコードをVercelでホスティング
4. README.mdにSVGへの画像リンクを追加

# サンプル
## 出力画像(SVGからPNGに変換済み)
![sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687226/1933c231-74f2-1013-0cae-6512cc050ae8.png)

## 動作しているページ
[github.com/gazf](https://github.com/gazf)

# 使い方

元記事を表示

GitHub Packagesで複数パッケージを1リポジトリに登録する

自分で作ったパッケージをnpmに登録するのは怖いのでどこか良い置き場ないかと思ったら、GitHubがnpmなどのパッケージの置き場として使えるようになっていたことを知った。

ここでは、npm向けのパッケージをGitHub Packagesを使って、GitHub上の1つのリポジトリに登録する手順をまとめる。(基本的には「[GitHub Packagesについて](https://docs.github.com/ja/packages/publishing-and-managing-packages/about-github-packages)」の手順に従えば良い)

# GitHubリポジトリのPAT作成
まず「[GitHub Packagesについて](https://docs.github.com/ja/packages/publishing-and-managing-packages/about-github-packages)」の「[トークンについて](https://docs.github.com/ja/packages/publishing-and-managing-pac

元記事を表示

Vue.jsでBootStrapをつまみ食い的に使う

# 概要

Vue.jsのVue CLIからBootStrapを使う方法。

「BootStrapを使おう!さぁ先ずは基本を学ぼう」と構えて臨むのではなく、「このデータ構造の表現にちょうどよいUI無いかな? お、BootStrapのxxのコンポーネントが良さ気じゃん」と**気軽**につまみ食いで使う、ことを目指すとする。

# サンプルに用いるデータ構造

次のような配列データを、Vue.jsを用いたUIで表現する場合を考える。
表示対象は「`datetime, type, notes`」の3つとする。

“`
activitylist = [
{
id: 5,
datetime: “1596229200”,
type: 1,
notes: ‘翌日の6時に起きたとする’
},{
id: 4,
datetime: “1596223800”,
type: 1,
notes: ‘翌日の4時半に目が覚めたとする’
},{
id

元記事を表示

IBM Cloud Functions でLINEとSlack連携させてみた

# はじめに
この記事は、LINEとIBM Cloud Functionsを連携したSlackへの通知機能を作ったので、3回に分けて紹介したい記事の第3回になります。
 第1回:[IBM Cloud Functons 動かしてみた](https://qiita.com/katahiro/items/4b515c12e42e98e17eb7)
 第2回:[IBM Cloud FunctionsでNode.jsのパッケージを利用してみた](https://qiita.com/katahiro/items/1d483030527367338574)
 第3回:[IBM Cloud Functions でLINEとSlack連携させてみた](https://qiita.com/katahiro/items/298eac9c0fa875333d84) ← この記事

## なんでLINEとSlackを連携させようと??
近年、自社の社内コミュニケーションツールがSlackに移行したのですが、それ以前からチームメンバーの他愛のないやり取りをLINEで行っていました。協業するベンダーさんも含まれてお

元記事を表示

IBM Cloud FunctionsでNode.jsのパッケージを利用してみた

# はじめに
この記事は、LINEとIBM Cloud Functionsを連携したSlackへの通知機能を作ったので、3回に分けて紹介したい記事の第2回になります。
 第1回:[IBM Cloud Functons 動かしてみた](https://qiita.com/katahiro/items/4b515c12e42e98e17eb7)
 第2回:[IBM Cloud FunctionsでNode.jsのパッケージを利用してみた](https://qiita.com/katahiro/items/1d483030527367338574) ← この記事
 第3回:[IBM Cloud Functions でLINEとSlack連携させてみた](https://qiita.com/katahiro/items/298eac9c0fa875333d84)
今回は、アクションにNode.jsのパッケージを利用して、より自由な処理を作れることを紹介したいと思います。

# 用意するもの
– Node.js のプログラムの開発環境(筆者は `VSCode` を利用します)
– [IBM Cl

元記事を表示

npx create-react-appで”Error: EPERM: operation not permitted, mkdir ‘C:\Users\〇〇 ‘ command not found: create-react-app”

## 概要
node.jsをインストーラーで入れ直して直後、`npx create-react-app hoge`をした時に、

“`
Error: EPERM: operation not permitted, mkdir ‘C:\Users\〇〇 ‘
command not found: create-react-app
“`

と出た時の対処法の覚書。

## 環境情報
Windows10
node.js v12.18.3

## 原因
create-react-appをすると、node.jsは自身のインストール場所に関わらず、デフォルトでC:ドライブのAppDataにcacheフォルダを作ろうとします。もしPCの名前に半角スペースが入っているとフォルダの作成に失敗するためエラーが生じます。

## 自分が行った対処法

“`
npm config set cache <任意のpath> –global
“`
としてcacheフォルダをパスに半角スペースを含まない場所に変えてやるといけました。
正直なところ **`–global`は必要なのかわかりませんが** ノリで

元記事を表示

GLTFモデルをNode.js上のヘッドレスなthree.jsで読み込み3Dの計算を行う(レンダリングは行わない)

# 概要

* Node.jsで3Dの計算だけしたい
* 画のレンダリングは不要
* Raycasterによる当たり判定程度まではできることがわかった、それ以上は未検証

# 時間がない人向けの内容ざっくり(tl;dr)

* GLTFLoaderをNode.js上で動くように改変することが必要
* BufferをUint8Arrayに変換するメソッドの追加
* それに伴うparseメソッド内でのmagic周辺の改変
* 改造したGLTFLoader.parseにfs.readFileSyncしたBufferを食わせる
* callbackの引数にオブジェクトが返るので、通常のGLTFLoaderのときのように、THREE.Sceneにロードできる

# 動機

シンプルなWeb上で動くオンライン3Dゲームを作りたい。

オンラインなのでサーバが必要。

オンラインかつ3Dなので、3D位置情報が同期的である必要があるだろうと考えた。

またサーバ側でマスタ3D位置情報を持つ必要もあるだろうと考えた。

# 前提

Web上で動く3Dゲームである以上フロントはThree.

元記事を表示

OTHERカテゴリの最新記事