Node.js関連のことを調べてみた2021年07月23日

Node.js関連のことを調べてみた2021年07月23日

ServerlessFrameworkでcron実行する(Node.js)

Serverless Frameworkでcron実行するサンプルコードです。
AWS LambdaではJST未対応のようで、-9時間する必要有ります。
時間設定の際にご留意ください。

“`shell:ディレクトリ構成
~/develop/study/serverless/cron $ tree -I node_modules
.
└── aws-node-scheduled-cron
├── handler.js
├── package.json
├── serverless.yml
└── yarn.lock
“`
“`yaml:serverless.yml
service: aws-node-scheduled-cron2

frameworkVersion: ‘2’

provider:
name: aws
runtime: nodejs12.x
lambdaHashingVersion: 20201221

functions:
cronHandler:
handler: handler.run
even

元記事を表示

Node.jsインストール方法

Node.jsというwebページ作成に便利なものがあることを知ったので、インストールから使い方まで説明していこうと思います。

# 動作環境
* OS : macOS Big Sur 11.4
* Node.js : 14.17.3 LTS

# Node.jsのインストール
* 以下のURLから推奨版をインストールしてください。個人的には最新版は不具合の影響でうまくいかなかったりするため推奨版を使用
https://nodejs.org/ja/

# Node.jsのプロジェクトを作成

* 以下のコマンドを実行し、プロジェクトを作成

~~~
$ npx create-nuxt-app [プロジェクト名]
~~~

* 途中で以下のような質問が聞かれるので、Package managerはNpmに設定し、それ以外はデフォルトの設定にしました

~~~
? Project name: sample_project
? Programming language: JavaScript
? Package manager: Npm
? UI framework: None
?

元記事を表示

【Intellij IDEA(Ultimate)】npmなどのパッケージマネージャーをインストール/アップデートする

## 前書き
`Intellij IDEA(Ultimate)`では、`npm`のようなパッケージマネージャーをIDEから個別にインストールすることが可能です。
`IDEA`経由でパッケージマネージャーをインストールする場合、以下のようなメリットを得ることができます。

– ローカルの開発環境とは別に、各種パッケージマネージャー(バージョン違い含む)を、プロジェクトや`Run/Debug Configurations`で個別適用することができる
– 切り替えも容易にできる
– `Windows`や`mac`、`Ubuntu`といった各種プラットフォームを跨いでも、同じような操作感で環境構築できる

この記事では、`IDEA`でパッケージマネージャのインストール、`Run/Debug Configurations`での設定、及びアップデートする方法についてまとめます。
使用している`IDEA`のバージョンは`2021.1.3`で、`Windows`環境です(環境ごとの差異はそれ程無いと思います)。

### 補足: この記事の前提
この記事では、ローカルで`Node`が実行できる状態

元記事を表示

Node-RedでAlexa Home Skill Bridgeを設定する

## 前提
– Node-Redをインストール、起動している

Node-Redインストールの方法は[こちらの記事](https://qiita.com/loach/items/4dfb14fde3b14d581a47)を参考にしてください。

https://qiita.com/loach/items/4dfb14fde3b14d581a47

## Node-RED Alexa Home Skill Bredgeの設定
### アカウントの作成
[こちらのリンク](https://alexa-node-red.bm.hardill.me.uk/)からregisterでアカウントを作成する

https://alexa-node-red.bm.hardill.me.uk/

既にアカウントがある場合はログインしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/263584/36d6faf6-2cf0-4e3f-65a7-814226f5f5da.png)

### デバイスの

元記事を表示

SurgeにWebページをデプロイするメモ

## ざっくりSurge

https://surge.sh/

静的Webページを公開することができるサービスです。
無料プランと 月30ドルの有料プランがありますが、無料プランでも趣味の範囲なら十分そうです。

– `surge`コマンドを使って、マシン上のどのディレクトリのコードでもデプロイできる
– カスタムドメインを利用できる。(`xxxxxx.surge.sh`。購入済みドメインも設定できる。)
– 無料版でもパブリッシュの上限なし

## さっそくデプロイしてみる

surgeのCLIツールをインストールします。

“`bash
npm i -g surge
“`

デプロイしたいディレクトリに移動し、surgeコマンドを実行します。

“`bash
cd /path/to/publish/directory/
surge
“`

初回実行時のみユーザー登録が必要なので、登録しましょう。

いくつかオプションを聞かれるので、答えます。
– `project`: デプロイしたいディレクトリ。カレントディレクトリがデプロイしたいディレクトリであればそのままでOK。

元記事を表示

JavaScriptで比較的安全にeval()する

## evalって?
文字列をJavaScriptのコードとして評価してくれます。
一見便利だけど、めっちゃ危険だから通常使うことはありません。
使ったらESLintにも怒られます。

でも、外部からコードを注入できるのはとても拡張性が高いので、クローズドなBotとかの開発に使いたい場面はあります。

## eval的なやつ
`eval()`が一番有名だと思うけど、実は他にも同じようなことができる方法があります。
具体的には、グローバルオブジェクトの`Function()`と、Node.jsのVMです。

> * [eval ( )](https://developer.mozilla.org/ja/docs/orphaned/Web/JavaScript/Reference/Global_Objects/eval)
* [Function ( )](https://developer.mozilla.org/ja/docs/orphaned/Web/JavaScript/Reference/Global_Objects/Function)
* [Node.js VM](https:/

元記事を表示

Docker React環境簡単構築

## 概要
Dockerを使って簡単にReact環境を構築する方法をご紹介します。

## 環境
– macOS Big Sur 11.4
– Docker 20.10.6
– docker-compose 1.29.1

## 構成

“`
.
├ docker
│ └ node
│ └ Dockerfile
├ node
│ └ react-sample
└ docker-compose.yml
“`

## 手順
今回は、`react-sample`という名前でアプリケーションが作成されます。

### 1. docker-compose.ymlの作成

他の名前が良ければ以下の`react-sample`を変更してください。

“`docker-compose.yml
version: ‘3.9’

services:
node:
build: ./docker/node
volumes:
– ./node:/usr/src/app:cached
command: sh -c “cd react-sample && yarn

元記事を表示

超爆速でLamndaでDenoを動かしてみる

私はLmabdaが大好きだ。
もう全てLambdaで動かせばいいんじゃないかな?(少なくともAPIはAPIGateway + Lambdaで十分だと思ってる。)

それはさておき

そんなLambdaでDenoを爆速で動かす方法をまとめてみた。

# 前提条件

– aws cliが使用できる
– 実行環境はmac

# 1.Layerの登録

## deno-lambda-layer.zipをダウンロード

“`sh
$ curl -OL https://github.com/hayd/deno-lambda/releases/download/1.11.0/deno-lambda-layer.zip
“`

公式サイトより最新のアーカイブファイルをダウンロードすることを推奨

## deno-lambda-layerを登録

“`sh
$ aws lambda publish-layer-version \
–layer-name deno-la

元記事を表示

【API】Firebase × Express で API を作成する。 JWT 保護もする。


# 概要

Node.js + ExpressでAPIを作成し、それをFirebase Functionsにデプロイします。
また、APIのエンドポイントは、JWTで保護します。


# JWT(JsonWebToken)とは

OAuth2準拠のアクセストークンの一種で、APIのエンドポイントに対して誰もがアクセスできないように保護します。

・基礎的な知識

https://qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be

・JWTの動作

https://qiita.com/Na

元記事を表示

Javascriptでバッチを作って実行する(Node.js)

知っている人には当たり前過ぎる情報なので、素通りいただければです。

思い返すと2年前はこれ全然知らなかったなー、、、とふと思ったので参考になる人がいるかもということで記事にしました。

個人的には、お手軽にプログラミングできるのでお勧めです。

# 前提
mac(Windowsでも環境構築すれば問題なく実行できます)

# 用語
## Node.js
– JavaScriptの実行環境
– `node test.js`とかで、JavaScriptをターミナルで実行可能になる
– 例えると`php test.php`のphpに当たるもので良いと思う
– メジャーバージョンよく更新されている=モダン?
– 更新多いのでバージョン管理ツールを使うと便利(nodebrew, nodenv, anyenv 色々あります。)
– 最近だとasdfを使って構築する記事をよく見ます

## npm

– Node.jsのライブラリのパッケージ管理ツール
– `npm install {パッケージ名}`とかで、カレントディレクトリに.node_modulesというディレクトリが

元記事を表示

Serverless FrameworkでLinebot作成

#概要
Serverless FrameworkでLinebotを作成するための記事です。

#アジェンダ
1. Serverless Frameworkの設定
2. Linebotの設定
3. パラメータの変更
4. デプロイ・実行

#1 Serverless Frameworkの設定

“`javascript:aws-nodejsテンプレートのインストール
~/develop/study/linebot $ serverless create –template aws-nodejs –path linebot
Serverless: Generating boilerplate…
Serverless: Generating boilerplate in “/Users/kawamurakouji/develop/study/linebot/linebot”
_______ __
| _ .—–.—-.–.–.—–.—-| .—–.—–.—–.
| |_

元記事を表示

JavaScriptでcsvダウンロードを実装する方法

#はじめに
フロント(React)でcsvダウンロードを実装する機会があったため、備忘録です。
どうぞご活用ください。

#実装

“`javascript

const handleDLcsv = async () => {
//アイテムの定義
const download_items = [
{‘id’: 1, ‘name’: ‘apple’, ‘price’: 100},
{‘id’: 2, ‘name’: ‘orange’, ‘price’: 120},
{‘id’: 3, ‘name’: ‘melon’, ‘price’: 800}
];
//csvヘッダー
const array_data = [[‘id’, ‘name’, ‘price’]];

//文字コード
const bom = new Uint8Array([0xEF, 0xBB, 0xBF]);

//csv用データ作成
download_items.map((

元記事を表示

nodejsハマるところまとめ

## gypのbuildコケる問題

`make gcc g++ python` が大体無い

g++は`sudo yum -y install gcc-c++`

元記事を表示

Cloud9 – 既存のEC2インスタンスに接続する

#まえがき
毎度のことながら環境構築に四苦八苦しております。
今回もうんうん唸りながら構築しました。
sshログイン時にNode.jsのインストール、ログインせずnodebrewでのインストール、
の両方とも経験した(ただ失敗しただけ)ので、どちらも投稿します。
結局新たにEC2インスタンスを作成し、SSH環境では使用していないので、
ゴンがカッツォを助けたみたいに、どなたかの助けになれば、、

Cloud9を使用する際は、AD Blockなどの拡張機能の停止または削除してから実行しましょう。
不具合が発生する模様です。

#動作環境
・MacBook Air (Retina, 13-inch, 2020)
・Big Sur11.4
・ターミナルシェル:zsh

#前提
VPCやEC2インスタンスの作成、
あるいはElastic IPアドレスの取得等は事前に済んでいることとします。
Cloud9のリージョンは東京にしました。

#1.Node.jsをインストール
Cloud9にはNode.jsが必要なので最初にインストールします。
(1

元記事を表示

package.jsonにfilesを書かないあなたは、誰かを少しだけ不幸にしています

## 先に結論だけ

`package.json`に`files`フィールドを指定すると、`node_modules`に保存されるファイルサイズが減ります。

## はじめに

この記事は、[npm](https://www.npmjs.com/)の[package.json](https://docs.npmjs.com/cli/v7/configuring-npm/package-json)に指定するフィールド、[files](https://docs.npmjs.com/cli/v7/configuring-npm/package-json#files)の指定方法と効用を解説、共有するためのものです。

### 想定する読者

この記事は、以下の読者を想定して書かれています。

+ JavaScriptの開発経験がある
+ npmを使ったことがある
+ npmやGitHubでnpmモジュールを公開している

### 想定する環境

この記事は、以下の環境を想定して書かれています。記事を読む前に、お手元の環境をご確認ください。

“`shell
$ npm –version

元記事を表示

Macでnodev経由でnode 16.x がinstallできない。

nodenvでnodeの16系がinstallできなかった。nodenvのplugin pathにはいって、git pullすると更新できるらしい。

“`jsx
cd “$(nodenv root)”/plugins/node-build && git pull
“`

参考。
[nodenvでinstall出来るnodeのバージョンを確認したら最新が出てこなかった時 – Qiita](https://qiita.com/kzk_FE/items/0baf5cdda00eab36c441)

[Twitter](https://twitter.com/yoshixj)

元記事を表示

Node.js はどんな流れで非同期・同期処理を実行するのかイメージしたい

# 経緯

Node.js は V8 上に構築された JavaScript の実行環境ってのは [Wikipedia](https://ja.wikipedia.org/wiki/Node.js) を読んでなんとなくわかった。Wikipedia の少し下の方にある「クライアント1万台問題」についての記述を読んで見ると

>非同期処理のNode.jsではクライアント1万台問題は起きない。
Node.jsでこの問題を解決した技術の中核は、シングルスレッドにおける非同期処理を容易に実装可能にしたイベント駆動型プログラミング環境である。

なるほど、シングルスレッドで動作してるから、プロセスを無制限にフォークすることでコンテキストスイッチが起こりまくって超重くなることはない。詳しくわかってないけど「非同期処理を容易に実装可能にしたイベント駆動型プログラミング」によって同時に処理を捌けるらしい…。

**とりあえず node.js だと非同期や同期処理が混ざってるときはどう進むのかだけでも知りたい!**

**※** 正確に知りたい方はこちらの記事や、`libuv` を調べてください。
ht

元記事を表示

DynamoDB localを使ってDynamoDBをローカルでデプロイする

## 概要

DynamoDBはウェブサービスとして利用できるほか、別に提供されている**DynamoDB Local**を使えばDynamoDBを**開発用ローカルDBサーバ**としてデプロイすることができます。
DynamoDB Localに関する公式ドキュメントは以下の通り。

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html

上記の記述の通り、DynamoDB Localは実行可能な.jarファイルとして提供されているほか、Dockerイメージとしても提供されており、`docker-compose`で簡単にデプロイすることができます。

今回は公式の記述を参考にしつつ、`docker-compose`でDynamoDB Localをデプロイし、Node.js上から読み書きするまでを行ってみたいと思います。

### dynamodb-admin

また、**dynamodb-admin**というDynamoDB Local用のGUIを提供してくれる

元記事を表示

Updated node package globally, but the version was not changed.

# When I’d have loved to update a node package

I ran below command for updating firebase-tools version.

“`
yarn add global firebase-tools
“`

But version was not changed

# Why version was not changed

Because command was wrong.

Correct command is below.

“`
yarn global add firebase-tools
“`

If we put `global` before `add`, node package is installed only globally.
If we put `global` after `add`, node package is installed globally and locally.
And my `firebase-tools` version was different

元記事を表示

オニオンアーキテクチャ on Node.js + Express + TypeScript

# 概要
設計の脳内整理資料

# ディレクトリ構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1621988/9db85b3e-7cb2-9221-fe3e-7ebb8e2b0b54.png)

# プレゼンテーション層

## ルーター

`routes\task.route.ts`

“`typescript
import express from ‘express’;
import TaskApplication from ‘../applications/task.application’;
import TaskRepository from ‘../infrastructure/task.repository’;

const taskRepository = new TaskRepository();
const taskApplication = new TaskApplication(taskRepository);
const router = expres

元記事を表示

OTHERカテゴリの最新記事