- 1. node(ts)でlambdaを非同期で起動
- 2. 【TypeScript】EventEmitterを継承してクラスを作る
- 3. 【Electron】メモ
- 4. Node.jsのsokect.ioを使ってのPUSH通知を作ってみた
- 5. Reactnative/Expoでレシート印刷の receiptline を使ってみた
- 6. M1 macbookでnodebrew installできないとき
- 7. Next.jsで配列内のJSONデータで必要な部分のみ出力したい
- 8. 【超簡単】Next.jsでBasic認証を導入してみた
- 9. Next.jsでError: EPERM: operation not permitted発生時の対処法
- 10. Node.js Express + React の Proxy 設定について
- 11. 【初心者】npmという名のバージョン管理ツールとは
- 12. 【公式ハンズオン】Node.js+PrismaをServerless Frameworkを使用してAWS Lambdaにデプロイする
- 13. Error: listen EADDRINUSE: address already in use :::3000 の対処
- 14. MacにNodeをインストール、バージョンを切り替える方法とNodeのバージョンについて
- 15. Docker-compose3でnode.js&mongodb&nginxの環境を整える
- 16. Node.js x LINE Messaging APIで複数メッセージを1度に送ってみた
- 17. AWS EC2でCyberChefを動かす
- 18. brew upgrade voltaしたら、nodeにPATHが通らなくなった時の解決法
- 19. Node.js で osm-pbf-parser を使うときのメモ
- 20. M1 MacにNode.jsをインストールする方法と使い方(Node.jsバージョン管理)
node(ts)でlambdaを非同期で起動
# はじめに
@aws-sdk/client-lambdaを使った具体例があまり見つからなかったので、自分の再利用時用に簡単な例をという感じでの記事です。※ローカル実行したサンプルです。
# 環境
– node:v16 (ts)
– @aws-sdk/client-lambda
– LambdaClient
– InvokeCommand
– InvokeCommandInput“` yarn add @aws-sdk/client-lambda“`
# 実行権限 (未検証)
※ローカルで試したので検証していないですが、AWS上で実行する場合は、実行元に下記のようなロールが必要なはず。
“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “PermissionToInvoke”,
“Effect”: “Allow”,
“Action”: “lambda:InvokeFunction”,
“Resource”: “arn:aws
【TypeScript】EventEmitterを継承してクラスを作る
typescriptにおいてEventEmitterを継承したクラスを作成します。
## EventEmitterとは?
Node.jsの標準モジュールの一つ、Eventsから読み込めるクラス。イベントリスナー(イベント実行時に動く関数)の登録を行い、イベントの実行をトリガーとして登録した処理を実行することができる。
## EventEmitterを使ってみよう
EventEmitterをimportし、インスタンスを作成します。
“`typescript
import { EventEmitter } from “events”;
const emitter = new EventEmitter();
“`イベントリスナーの登録処理は“`eventEmitter.on“`もしくは“`eventEmitter.addListener“`で行います。ちなみにこの二つは[同じものだそうです](https://github.com/nodejs/node-v0.x-archive/blob/master/lib/events.js#L188)。
“`typesc
【Electron】メモ
## メモ
WEB技術でデスクトップアプリケーションを開発できるFWのElectronについて、メモしました。## 目次
– IPC通信について:メインプロセスとレンダラプロセス
– IPC通信とは何か?
– `main.js`の説明
– `ipcMain.handle()メソッド`
– `renderer.js`の説明
– `ipcRenderer.invoke()メソッド`
– `preload.js`の説明
– アプリケーションの実行方法## IPC通信とは何か?
### メインプロセス側: `main.js`
`ipcMain.handle()`メソッドを使用します。`ipcMain`モジュールはメインプロセスで、レンダラプロセスから送信されるメッセージを受信して処理します。
基本的にメインプロセスは受け身で受信したら送信元のレンダラプロセスに対して返信するみたいな動きになります。### レンダラプロセス側: `renderer.js`
`ipcRender.invoke()`メソッドを使用します。
メインプロセスに対して、同期、非同
Node.jsのsokect.ioを使ってのPUSH通知を作ってみた
こんにちは、wattak です。
50の手習いで Web アプリを作ってみよう、と色々と調べておりまして、自分の備忘録もかねて作ってみた実装をこちらに投稿しようと思います。
## 今回のプログラム
任意のタイミングでサーバーからクライアントへ PUSH する仕組みを持つ環境を Node.js を使って構築してみました。なお PUSH の仕組みは記事のタグにも記載しましたが socket.io の仕組みを使っております。
## 処理概要
以下のようなイメージで構築しようと考えております。1.クライアントから接続要求
2.サーバーにてクライアント情報を追加
3.クライアントから受付要求
4.サーバーにて登録処理して応答
5.以後、任意のタイミングでサーバーからクライアントへ PUSH 通知「任意のタイミング」については PUSH 用に RestAPI を用意し API コールのタイミングで通知を行うことにしました。
## 処理イメージ
ポンチ画レベルのシーケンスで恐縮ですが1.~5.の処理イメージを描いてみました。
![qiita_image.jpeg](https://qi
Reactnative/Expoでレシート印刷の receiptline を使ってみた
今回はNode.js用にOFSC(一般社団法人オープン・フードサービス・システム・コンソーシアム)で開発されたレシート記述言語 ReceiptLineをReactnative/Expoで使えるようにしてみた方法の紹介です。
発端は下記の記事で面白いなと感じた事で、その後色々調べてみると最近iPad等のタブレットを利用した各種POSレジソフトが普及しつつあるので、スマホやタブレット用のレシート印刷アプリのニーズが在りそうに思ったことと、結構POSレジソフトはプリンターの対応機種を限定しており、AppleのAirPrint対応機種も最近増えてますが古いプリンターは対応できない等の問題が有りそうなこと等です。
[ リンク:Qiita 簡単レシート印刷 receiptlineと20行のJavaScriptでレジプリンターをインスタントカメラにしてみた](https://qiita.com/dopperi46/items/1d2b92ba6a4cb6f79c19)
この記事の主な内容はこんな感じです。
1.レシート記述言語receiptlineとは何?
2.node.js用のモジュールを
M1 macbookでnodebrew installできないとき
## いつも忘れること
– M1 macbookに変えてから、npm使っているとたまに下記サイトのようなエラーに出会う。https://zenn.dev/catnose99/scraps/6c9e7ebabb6221
– それ自体は、Node.jsのバージョンを変えると動くという話なので、nodebrewでバージョンを変えれば良い
– しかし、目的のNode.jsをインストールしようしてできない、ということをいつも繰り返している## 結局こちらにお世話になる
https://zenn.dev/naoki_oshiumi/articles/967ce342172ab8
– ということで備忘録。
– M1 macbookにして、 `nodebrew install v15.8.0` みたいなことができない時は `nodebrew compile v15.8.0` みたいな感じにすると環境に必要なバージョンのNode.jsを作ることができる。
– このコンパイルは記事にもある通り1時間くらいかかると思う(M1頑張ってくれ)
– あとは `nodebrew use v15
Next.jsで配列内のJSONデータで必要な部分のみ出力したい
## はじめに
もっと良い方法があるかもしれないですが、調べた中で上手くいったコードをメモがてら記載## コード
“`index.js
const [qiita, setQiita] = useState(”);
const fetchQiita = async () => {
// データを取得
const response = await fetch(`/api/qiita?query=${keyword}`);
let qiita = await response.json();
// 配列を1つ出力して別の変数に格納
const listQiita = qiita.map(article =>
<>{article.title} {article.body} >
);
// useStateの変数にセットする
setQii
【超簡単】Next.jsでBasic認証を導入してみた
## はじめに
Next.jsでBasic認証を導入しようと思いましたが、TypeScriptで記載されたサンプルしか見つけられなかったため、JavaScript版を作成しました。## Next.jsでBasic認証を導入する方法
以下を`pages`フォルダ配下に作成する
“`
/pages/_middleware.js
import { NextRequest, NextResponse } from ‘next/server’export function middleware(req) {
const basicAuth = req.headers.get(‘authorization’)if (basicAuth) {
const auth = basicAuth.split(‘ ‘)[1]
const [user, pwd] = Buffer.from(auth, ‘base64’).toString().split(‘:’)
if (user === process.env.NEXT_PUBLI
Next.jsでError: EPERM: operation not permitted発生時の対処法
## 操作内容
“`bash
npm run build
“`“`package.json
{
“private”: true,
“scripts”: {
“dev”: “next dev”,
“build”: “next build”,
“start”: “next start”
},
“dependencies”: {
“buffer”: “^6.0.3”,
“next”: “latest”,
“react”: “17.0.2”,
“react-dom”: “17.0.2”
}
}
“`## エラー内容
“`bash
Error: EPERM: operation not permitted,
“`## 原因
以下コマンドでローカルでサーバを起動していたため“`
npm run dev
“`## 対処法
ローカルサーバを止めて、再度以下を実行する
“`bash
npm run build
“`
Node.js Express + React の Proxy 設定について
# この記事について
Node.js Express をキャッチアップし、アウトプットしようと簡単なWebアプリを作成したとき、Proxyの設定に少々つまづいたので備忘録。# やりたいこと
– Github APIを利用し、Githubのクローンを作成したい(ユーザー情報閲覧、フォロー、フォロワー、リポジトリ、ユーザー検索機能のみ)。
– ServerサイドでAPIを作成(Node.js Express)。
– ClientサイドはReactで作成。# バージョン
“`
$ node -v
v14.17.0$ npm -v
6.14.13express: 4.18.1
react: 18.1.0
“`# 想定
– React project ・・・`http://localhost:3000`
– Express project ・・・`http://localhost:5000`ユーザーは`http://localhost:3000`にアクセスすることでReactによって描画されたブラウザを閲覧できる。
アプリケーション内でGithubユーザーの検索や、フ
【初心者】npmという名のバージョン管理ツールとは
## 目的
npmとかnodebrewとかNode.js使うと色んなコマンドが出てくるが
npmっていったい何者なのかとなったので調べた。
ちなみに環境はmac。## npm
node package managerの略。
Node.jsのパッケージのバージョンを管理するシステムのこと。Node.jsにはたくさんのパッケージ(便利な機能がまとまったもの)が存在し
それを一つ一つインストールするのは大変なので、コマンドでインストールできるようにしてやるぜ、的なもの。npmはNode.jsをインストールすると一緒にインストールされる。
ちなみにnpm以外にもNode.jsのパッケージバージョン管理システムは存在する。yarnもその一種。
## では一体、nodebrewは?
nodebrewはNode.js(言語)自体のバージョン管理ツール。
Node.jsのバージョンを上げたりできる。nodebrew以外にも以下のようなNode.jsのバージョン管理ツールが存在する。
* n
* nvm
* nodistnodebrewを使うにはmacにあるhome
【公式ハンズオン】Node.js+PrismaをServerless Frameworkを使用してAWS Lambdaにデプロイする
:::note
この記事は、Prisma公式の「Deploying to AWS Lambda」の和訳(意訳)です。
翻訳元とライセンスについてはページ下部に記載しています。
:::このハンズオンでは、Serverless Frameworkを使用して、AWS LambdaにサーバレスなNode.jsのREST APIをデプロイする方法をお伝えします。
AWS LambdaはAWSのサービスの一つで、これを使うとサーバ管理不要のサーバレス環境でコードを実行できます。一方で、REST APIをLambdaにデプロイするためには、S3でファイルをホスティングしたり、API GatewayでAPIをHTTPで公開する必要もあります。
Serverless Frameworkを使えば、CLIでワークフローを自動化し、AWSリソースのプロビジョニングも行うことができます。
今回作成するREST APIでは、Prisma Clientを使用してデータベースのレコードの取得・作成・削除を行います。具体的には、それぞれの関数はRESTリソースのエンドポイントを表し、Prisma Client
Error: listen EADDRINUSE: address already in use :::3000 の対処
## 以下のエラーの対処方法について。
“`shell
Error: listen EADDRINUSE: address already in use :::3000
at Server.setupListenHandle [as _listen2] (node:net:1334:16)
at listenInCluster (node:net:1382:12)
at Server.listen (node:net:1469:7)“`
localhost:3000 のaddress が使用済みということなので該当プロセスを終了すれば良い。
### 該当プロセスの調査
“`
# nodeで稼働中のプロセスを調査
ps aux | grep node# port3000を利用してるプロセスの調査
lsof -i :3000
“`後者の`lsof -i :3000`の方が確実。
### 該当のプロセスIDを指定してkill
“`shell
kill -9 [該当のPID]
“`-9 は強制終了命令(killシグナル)を送る
MacにNodeをインストール、バージョンを切り替える方法とNodeのバージョンについて
Macにnodeをインストール、バージョンを切り替える方法について備忘録としてまとめます。
## 実行環境:
Mac OS ver.12.1
M1チップ## インストール方法
nodebrew を使用してインストールします。
homebrew を利用するため、インストールしてない場合は[こちら](https://brew.sh/index_ja “Homebrew”)からインストール。### nodebrew のインストール
“`shell
brew install nodebrew
“`### nodeのインストール
#### 最新版のnodeのインストール
LTS versionのインストール。
“`shell
nodebrew install-binary latest
“`#### 安定版のインストール
(2022/05時点ではv18.1.0)
“`shell
nodebrew install-binary stable
“`#### 現在提供されているバージョンの確認
“`shell
nodebrew ls-remote
“
Docker-compose3でnode.js&mongodb&nginxの環境を整える
# はじめに
これはある記事を参考にnode.jsとmongodbとnginxのDocker環境をcomposeでめっちゃお手軽に作ったろ、とか思ったらエラーしたため案外悪戦苦闘してしまった人のお話です。
そのため、ほとんど内容は書かず、下に貼ってあるサイトに丸投げします。
ただ一点、エラーの発生する場所だけ書きますのであらかじめご理解を。(この記事を書いてるEchizenって人なんですが、一応何かしら言っといたほうがいいのかしらん?)
[参考]
https://zenn.dev/cizneeh/articles/nginx-node-mongo-docker-example#docker-compose.yml
# 環境
**22/05/21**
・CentOS7
・Docker 1.13.1
・Docker-compose 1.18.0
# docker-compose.yml
参考のサイトを進めていけば適当なディレクトリ構成でnode.jsとmongodbとnginxが使える環境が作れるはずなのですが、最後の最後に書かれているdocker-compose.ymlは
Node.js x LINE Messaging APIで複数メッセージを1度に送ってみた
## はじめに
LINEの公式ドキュメントでは単一メッセージを送るサンプルコードしか記載がなかったため、複数メッセージを特定ユーザに送ることは可能かを検証してみました。## 方法
“`bash
$ npm install @line/bot-sdk
“`“`test.js
const line = require(‘@line/bot-sdk’);const client = new line.Client({
channelAccessToken: ‘‘
});const message = [
{
“type”:”text”,
“text”:”Hello, world1″
},
{
“type”:”text”,
“text”:”Hello, world2″
}
];client.pushMessage(‘
‘, message)
.then(() => {
console.log(‘Success’);
AWS EC2でCyberChefを動かす
# はじめに
## AWS EC2とは
数分でクラウド上に仮想マシンを立てることができるサービス。
[Amazon EC2(安全でスケーラブルなクラウド上の仮想サーバー)| AWS](https://aws.amazon.com/jp/ec2/)
## CyberChefとは
ブラウザ上でデータに対する様々な操作ができるアプリケーション。
[CyberChef](https://gchq.github.io/CyberChef/)
# AWS EC2でCyberChefを動かす
## EC2インスタンスを起動する
今回は以下の設定でEC2インスタンスを起動します。
詳しいやり方はここでは省略するので、必要に応じて各自調べてください。* 名前
* 適宜設定する (例えば `CyberChef`)
* アプリケーションおよびOSイメージ
* Amazon マシンイメージ (AMI):Ubuntu Server 22.04 LTS (HVM), SSD Volume Type
* アーキテクチャ:64 ビット (x86)
* インスタンスタイプ
* **
brew upgrade voltaしたら、nodeにPATHが通らなくなった時の解決法
# 環境
– macOS 12.3.1
– Homebrew 3.4.11
– Volta 1.0.5 -> 1.0.7# Volta
Voltaはクロスプラットフォームで使えるNodeとnpmのバージョン管理ツールです。かなり高速で、使い勝手も良いので、未導入の方は是非。
https://docs.volta.sh/guide/
# upgrade
voltaを最新にアップグレード
“`terminal
$ brew upgrade volta
“`# command not found: node
nodeはおろかnpmも。焦る。
“`terminal
$ node -v
zsh: command not found: node$ npm -v
zsh: command not found: npm
“`けど、voltaだけはPATHが通っている状態
“`terminal
$ volta -v
1.0.7
“`# 解決策
voltaをsetupすれば直りました。
もしかしたらupgradeした時にターミナルに出力されてたのかも。
Node.js で osm-pbf-parser を使うときのメモ
# はじめに
Node.js で OpenStreetMap の PBF をパースするときに [osm-pbf-parser](https://www.npmjs.com/package/osm-pbf-parser) を使うことが多いのですが、example の書き方が 2015年当時のものでちょっと扱いに困ることがあるので、2022年ならこう書くかな?というものを記録しておきます。
# Before (official example)
“`js
var fs = require(‘fs’);
var through = require(‘through2’);
var parseOSM = require(‘osm-pbf-parser’);var osm = parseOSM();
fs.createReadStream(process.argv[2])
.pipe(osm)
.pipe(through.obj(function (items, enc, next) {
items.forEach(function (item)
M1 MacにNode.jsをインストールする方法と使い方(Node.jsバージョン管理)
## はじめに
nodenvを使うと、Node.jsのバージョン管理がしやすくなります。つまり、プロジェクト毎にNodeのバージョンを指定して実行ができます。今回はM1 MACにHomebrewを使ったnodenvのインストール方法と使い方をこの記事でまとめていきたいと思います。
## 環境
・macOS Big Sur 11.4## 1.Homebrewをインストール
[Homebrew](https://brew.sh/index_ja)をインストールしていない場合は、先にHomebrewをインストールします。
“`
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`## 2.nodenvをインストール
nodenvをインストールします。
“`
$ brew install nodenv
“`## 3.nodenv にパスを通す
自分は以下の記述がなかったため上手くバージョン管理ができなかったです。
“`