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

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

dockerでnodeを立ち上げる

Dockerに関しては業務である程度触ってはいるが、自分で立ち上げたことはなかったため、やってみることにした。
expressを利用したプロジェクトのディレクトリの作成から、Dockerfileを使ってdockerイメージを作成するところまで。

### Dockerfileとは?
Dockerイメージを構築するために必要なコマンドを記述するファイル。
– 「使用するnodeのバージョン」「Dockerイメージ内に作成するファイル」などのコマンドを記述する。
– `docker build –tag [name-tag] .` (`[name-tag]`は任意のタグ名)を実行すると、`Dockerfile`に記述されたコマンドを上から1つずつ実行し、Docker イメージを作成してくれる。

### 手順
1. プロジェクトのディレクトリを作成する。
1. 作成したディレクトリ下に`server/src/index.ts`を作成する。
1. `cd server`でディレクトリを移動した後、 `npm init -y` を実行して `package.json`を作成する。
1.

元記事を表示

AWS Lambda Node18.xでSystem Manager(Paramter Store)にアクセスする方法

### はじめに

AWS Lambda, Node.js(18.x), System Manager(Paramter Store)で簡単なサーバーレスバックエンドを構築した時、Node.js 16.x以前とParamter Storeにアクセスする記述が変わったので変更点をまとめます。

### 対象となる読者

– AWS Lambda初心者の方
– AWS System Manager初心者の方

### Lambda実行環境

– Node.js 18.x

### ポリシーの作成とLambda関数の実装

AWS LambdaのデフォルトではParamter Storeにアクセスする権限がありません。そのためParamter Storeにアクセスするにはポリシーを設定し、そのポリシーを対象のLambda関数にアタッチ(権限付与)する必要があります。以下はParameter Storeにアクセスするポリシーのサンプルです。

“`
{
“Version”: “2012-10-17”,
“Statement”: [

元記事を表示

node.jsでalexaスキル その3

# 概要
node.jsでalexaスキル、やってみた。
練習問題やってみた。

# 練習問題
「キヨシを開いて」で、zundokoを返せ。

# サンプルコード

“`
const LaunchRequestHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === ‘LaunchRequest’;
},
handle(handlerInput) {
let speakOutput = ”;
let j = 0;
while (j < 4) { if (Math.floor(Math.random() * 2) < 1) { j++; speakOutput += "ズン "; } else { j = 0; speakOutput += "ドコ "; } } speakOutput += "ドコ キヨシ"; return handler

元記事を表示

RaspberryPi 2(またはzero) にNodejs をインストール

最近、RaspberryPi2 に node.js をインストールする必要が出たのですが、CPUがARM、しかもv6(古い)であるためかWebに情報が少なく苦労しました。
同じ苦労をする人が1人でも減れば、と普段助けられている Qiita に初の投稿をしてみようと思います。

まず、ラズパイへのNode.js のインストールには以下の方法があるようです。

| 方法 | 備考/個人的な感想 |
| —- | —- |
| 公式スクリプト | ARMv7, ARMv8(RaspberryPi3以降)が対象|
| バイナリをダウンロード | 公式がコンパイルしたバイナリを利用 |
| nvm | 却ってややこしいような? |
| apt | 一番手軽に見えて、実は一番厄介らしい|

色々試しましたが、aptは上手く行かない、nvm は Node.js に不慣れな自分には分かりにくい…。
結果的には**バイナリをダウンロード**が一番良い方法なように思いましたので、そのまとめの記事です。

# 背景
そもそも、

元記事を表示

node.jsでalexaスキル その2

# 概要
node.jsでalexaスキル、やってみた。
サンプルを日本語化してみた。

# サンプルコード

“`
const Alexa = require(‘ask-sdk-core’);

const LaunchRequestHandler = {
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === ‘LaunchRequest’;
},
handle(handlerInput) {
const speakOutput = ‘ようこそ、こんにちは、または説明と言ってください。 どれにしますか?’;
return handlerInput.responseBuilder.speak(speakOutput)
.reprompt(speakOutput)
.getResponse();
}
};
const HelloWorldIntentHandler = {
canHandle(handlerInput) {
re

元記事を表示

SwitchBotとESP32と汎用リモコンで作るスマート家電

SwitchBotとESP32と汎用リモコンで、スマート家電システムを作成します。
全体構成は以下の通りです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/6a9fe029-6981-214b-98dd-aa477d162ad8.png)

いくつか補足します。
SwitchBotハブミニには、任意の赤外線信号を記憶し、送信することができます。また、AlexaやActions on Googleのようなスマートスピーカにも対応しているため、それだけで発話やスマホから連携して家電を制御できます。
汎用赤外線リモコンからも、任意の家電を操作できるようにしました。そのために、ESP32を仲介させています。SwitchBotは、WebAPIも公開しているため、ESP32→Node.jsサーバ→SwitchBotという流れが実現できます。
ちなみに、ESP32にGrove端子で接続できる赤外線送受信ユニットを使う場合は、赤外線信号の送信・受信の範囲が狭いため、赤外線受信リピータを

元記事を表示

npm ERR! code EACC発生時の対処法

– エラー内容
`npm install -g` コマンド実行時にエラーになる
“`shell:エラー内容
$ npm install -g json-server
npm ERR! code EACCES
npm ERR! syscall mkdir
npm ERR! path /usr/local/lib/node_modules/json-server
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/json-server’
npm ERR! [Error: EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/json-server’] {
npm ERR! errno: -13,
npm ERR! code: ‘EACCES’,
npm ERR! syscall: ‘mkdir’,
npm ERR! path: ‘/usr/local/lib/

元記事を表示

Angular + NestJS 開発環境サンプル2

# はじめに
以前作成した Angular + NestJS の開発環境サンプルを改善したので公開。

【ソースコード(GitHub)】
[angular-nest-example2](https://github.com/kyv28v/angular-nest-example2)

DBはPostgreSQLを使用しています。
最低限の構成で、簡単なCRUD機能のサンプルを動作させることができます。
デモ用などに簡単なWEBアプリを作りたい時とかに、ベースにできればと。
![angular-nest-example2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285246/7942f454-2b32-49cc-e858-dea860c54f03.png)

# 構成
Nxを使ってフロントエンドとバックエンドをmonorepo管理しています。
`npm start`によってフロントエンド(web)とバックエンド(api)を同時に起動するようにしています。
“`package.json
“scr

元記事を表示

【AWS】API Gatewayで配列パラメーターを受取る

API Gateway(REST API)で配列のクエリパラメーターを受け取れませんでしたので、その解決方法をメモします。

# 前提
API GatewayとLambdaプロキシ統合で使用

# multiValueQueryStringParametersを受取る(node.js)
ローカルの場合リクエストからクエリパラメーター配列を受け取れますが、API gateway経由で配列を受け取れないそうです。そのため、eventのmultiValueQueryStringParametersから配列パラメーターを受け取ります。
“`js
const express = require(‘express’)
const router = express.Router()
router.get(‘/demo’, [
], (req, res, nex

元記事を表示

node.jsでalexaスキル

# 概要
node.jsでalexaスキル、やってみた。

# 手順

– スキルに名前を付けます

キヨシ

– プライマリロケールを選択

日本語

– エクスペリエンスのタイプを選択します

ゲーム

– モデルを選択する

カスタム

– ホスティングサービス

Alexa-hosted (Node.js)

– ホスト地域

米国西部オレゴン

– Templates

スクラッチで作成

– コードエディタ

日本語に直す

– 保存

実行

– デプロイ

実行

– テスト

キヨシを開いて

# テスト実行結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/05406c9c-ce65-25d0-d61e-900c7bceed34.png)

以上。

元記事を表示

2023年版・日常業務のはじめかた

今日は 2023 年 1 月 9 日、成人の日でお休みです。今年から「成人式」と呼ばなくなった自治体が多数派になったと誰かが言ってました。

最近年のせいか、だいぶぼんやりしてきたような気がしています。このまま年を重ねるといつかは認知機能が衰えて仕事ができなくなる時がくるのかも。何らかのトラブルから短期記憶が失われることも考えられます。最近の記憶を失うと、苦労して手にしたスキルも失ってしまいます。

また指だけが覚えている記憶があります。これらをどこかに残しておかないと、2度と思い出せなくなるのかもしれません。

そんな時にこのメモがあれば、ひょっとしたら仕事を続けることができるかもしれません。今のうちに大切なことも、そうでないこともメモしておこうと思いました。

そして私が回復する見込みがない時には、以下のリソースを適切に保護してください。

## このメモの見つけ方

– [URL](https://qiita.com/ishi32/items/24ef4aff3ceff3972208) を以下の場所に残しておき、信頼できる人にその旨を伝えておく
– サイフ
– 手帳

元記事を表示

Node.js-Tutorial 2023 for Bigginer, Deploy to Heroku

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654025/4242b874-7bd2-1a1a-5da7-db7cfef62b41.png)

https://nodejs.org/ja/

https://github.com/iamshaunjp/node-crash-course

# Nodejs Version
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654025/a4e164e8-1851-9817-263c-2cd1243e4b3c.png)

# Modules
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/65402

元記事を表示

shebang に対応しているプログラミング言語まとめ

# はじめに

https://qiita.com/rana_kualu/items/84f66fe970f7feccf367

この記事を読んで、 **javascript(ECMA Script, ES2023) において shebang が言語仕様となる** ことを初めて知りました。

shebang を shell 以外に使うことに関しては、UNIX(OS) 側が、**「スクリプト言語は `#` をコメントとして扱うことが一般的」** ということを想定した、限定的な使用法と私は認識しています。

そのため、 **`#` をコメントとして使用しないプログラミング言語からの視点** でこの仕様を考えると、(UNIX のスクリプト実行のフォーマットという) **プログラミング言語が用意している実行方法の範囲から外れたケースの考慮** となります。
Node.js は、実行環境も含めたアプリケーションなので、 **Node.js に shebang の考慮が入っていること自体には違和感を強くはもたない** のですが、ブラウザの実行も含めた **ECMA Script の視点で sheb

元記事を表示

PHPをかじった自分がjsの非同期処理を理解してみる

# 概要

– PHPで同期処理しか書いてこなかったので非同期処理がワケワカメだった。そんな自分がなんとかして非同期処理を理解してみたのでまとめてみる。

# ベースとなるコード

– 今回、下記の様なjsのコードを用意しました。

“`js
console.log(“——————–“);

function a() {
console.log(“関数aです”);
b();
}

function b() {
console.log(“関数bです”);
c();
}

function c() {
console.log(“関数cです”);
}

a();
“`

– 関数aが関数bを呼び、関数bが関数cを呼んでいます。
– 上記を実行すると下記のようにコンソールに出力されます。

“`
——————–
関数aです
関数bで

元記事を表示

[備忘録] Node.jsでExcelを読み込みたい

# はじめに

自動化ツールの一環で、Node.jsを使ってExcelを読み込みたかった
ちょこっとSheetJSをさわったのでメモ

## おことわり

– この記事ではエクセルの内容を読むだけで、セルに書き込んだりブックを新しく作ったりしません
– せっかくなのでTypeScriptで書いてみました
– `ts-node`使ったり、いちいちjsにトランスパイルしたりしないと実行できないので、たぶんcommonJSか`.mjs`拡張子で作って`node`で起動するのがツール利用観点では楽かも

# 環境

“`
macOS 12.6
node 18.12.1
SheetJS(xlsx) 0.19.1
typescript 4.9.4
@types/node 18.11.18
ts-node 10.9.1
“`

`npm i -D typescript ts-node @types/node`

# 使用ライブラリ

[SheetJS](https://docs.sheetjs.com/)
npmでのパッケージ名は`xlsx`

[NodeJSでのInstallation

元記事を表示

[Node.js] Expressのタイムアウト時間を設定した上で、408レスポンスを返す

# はじめに

https://qiita.com/YOS0602/items/5a9d23037d04aacf8db6

↑自分が過去に書いた記事では、`Express`でのタイムアウト時間設定を記載しました
しかし、この設定だけだとHTTPレスポンスが返らないので、ちゃんと相手がいるシステムだと困るなあと思い、レスポンスを返せるように実装してみました

## `curl`やPostmanでtimeout設定だけしたExpressサーバのAPIを叩いてみた

“`terminal
% curl http://localhost:3000/time
curl: (52) Empty reply from server
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647946/bd4476bf-1f1c-1056-ed59-266120bd69ac.png)

レスポンスがクライアントに返っていないことがわかります
では、`408`ステータスが返却されるようにしてみましょう↓

元記事を表示

AWS SAMでJavaScript v3のLambdaをデプロイする(Node16以下)

この記事は Lambda の Runtime が Node16 以下で`SDK for JavaScript v3`を AWS SAM でデプロイする方法について記述しています。

:::note info
Node18以降はv3に対応しているので、v3で書かれたソースだけをデプロイしても動きます。代わりに、Node18以降でv2で書いている場合はv2のSDKをソースに含めてデプロイする必要があります。
:::

プロジェクトを`sam init`で作成した場合、ルートパスでデプロイすると`template.yaml`や`__tests__`などのファイルもアップロードされてしまい見た目が悪いです。そのため`template.yaml`で`CodeUri`を指定すると思います。

“`yaml:template.yaml
SampleFanction:
Type: AWS::Serverless::Function
CodeUri: src/
“`

このようにすると、v3のSDKが`sam build`の対象に含まれなってしまいます。この場合は`package

元記事を表示

Javascript 関係のツールまとめ(?)

# はじめに

最近趣味で少し ReactJS を触って時があるのですが、その際に Javascript 関係のツールがよくわからなかったのでざっとまとめてみた、というメモです。 もっと分かりやすくて正確な良い記事が他にも色々あると思いますが、自分用のメモということで。

# Javascript 関係のツールたち

– node.js … Javascript ランタイム。ブラウザから独立して動作するので、サーバーサイドや CLI ツールの実行などに使われていると思う、たぶん。
– nvm … node version manager, node.js のバージョン管理ツール。
– npm … A javascript package manager, Javascript のパッケージマネージャー
– npx … パッケージを実行するツール。npm と違うのはパッケージをローカルにインストールしなくてもパッケージを実行できること、らしい。 (参考記事:

元記事を表示

React Native v0.71.0の影響でandroidビルドできなくなった件

# あらまし
* React Nativeのv0.71.0-rc0が2022/11/4に公開されたよ
* 上記リリースによって他のバージョンのReact Nativeで開発を行っていた場合に、androidのビルドエラーが発生するようになったよ
* React Native公式で事象と対処方法についてissueを記載してくれているので、この記事では関連知識とissueの解説をしていくよ
* [公式のissue](https://github.com/facebook/react-native/issues/35210)

# 前提
## React Nativeとは
* [この記事](https://qiita.com/Iwark/items/7c27e919bb71f8b256f6)とか読んでもらうとわかりやすい。
* ざっくりいうとReactみたいな書き方でほぼほぼワンソースでandroidもiOSのアプリも作成できるすんばらしいフレームワーク。

## Node.js, npmとは
* Node.jsがなんたるかについては、[この記事](https://qiita.com

元記事を表示

WSL2でReactの開発環境を作ってみた

Webアプリを開発するとき、バックエンドを**Django**、フロントを**React**、とするのはよくある構成と思います。
既存Reactアプリケーションの改修に迫られたため、Windowsの**WSL2**をローカルの開発環境として試したときの手順メモです。

# 開発環境構築

## WSL2 新規インストール
今回は、Windows10 の最新ビルドに WSL2 の **Ubuntu20.04** をインストールします。
Windows10 の古いビルドでは、仮想マシンプラットフォームを有効にしたりと、もう少し手順が煩雑になるのですが、最新ビルドでは基本、`wsl –install`だけで完了します。これは Windows11 でも同様かと思います。

Windowsの仮想化技術のひとつであるHyper-Vアーキテクチャ(WSL2もこれに含まれる)と、VirtualBoxやAndroidエミュレータを共存させるので無ければ「Windowsハイパーバイザープラットフォーム」を有効にする必要はありません。

PowerShellから次のコマンドを入力していきます。

“`

元記事を表示

OTHERカテゴリの最新記事