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

Node.js関連のことを調べてみた2021年05月20日
目次

[Node]AWS LambdaからDynamoDBを操作する

こんにちは take-2405です。

今回はnodeでAWS Lambda関数を作成しました。(DymanoDBも触りました)

今後開発する際のテンプレートとして残しておきたいと思います。

(今回はDynamoDBのデータを取得しています)

“`javascript:index.js
const AWS = require(“aws-sdk”);
// DBと接続 (regionを指定するとaws accountに紐づくDynamoDBに接続されます。)
const dynamoDB = new AWS.DynamoDB.DocumentClient({
// region は人によって変わります。日本だとap-northeast-1かな?
region: “ap-northeast-1”
});
exports.handler = async (event) => {
//DynamoDB のクエリを記載する
let getDatas = async (argument) => {
const params = {

元記事を表示

Github Actionsを使用してFirebase hostingへの自動デプロイ&Parcelビルド

#はじめに
こちらの記事はビルドツールを勉強のためにParcelを導入した際に個人的にわからなかったことをまとめています
node.jsをほぼ初めて触ったので至らない点があるかと思いますがご了承ください

#Parcel Setup
https://ja.parceljs.org/

parcelをプロジェクト直下にインストールします

“`
$ npm install parcel-bundler
$ npm init -y
“`
packege.jsonが作成されます

次にcross-envも追加します

“`
$ npm install cross-env
“`

# package.json編集
一部抜粋しています
※今回はsrcディレクトリの内容をビルドし、uploadに出力します。

“`package.json
“scripts”: {
“clear-build-cache”: “rm -rf .cache/ upload/”,
“dev”: “parcel upload/index.html”,
“build”: “cross-env

元記事を表示

Node.jsにおいてGoogle認証機能の実装にチャレンジした話

#はじめに

私はプログラミング初学者です。
これから各記事はN予備校の「【2021年度】プログラミング入門 Webアプリ」を一通り終えて、今まで習ったことの復習と応用機能の実装を目的に開発を行っています。

この記事は、自身の行ったこと、躓いたところ、どうやって解決できたかを残すことで、同じ立ち位置の方に少しでも役に立てればと思って書いています。

内容、質ともに取るに足らない、何を言っているんだ?というところが殆どかもしれませんが、生温かい目で見守っていただけると幸いです。

#今回やろうと思ったこと

N予備校のプログラミング入門ではGithubの認証を用いてログインする機能を実装する。
ただ、今後開発することを考えると、Githubのアカウントもっている利用者はどれだけいるの?と思い、Googleでの認証機能を実装しようと思いました。

#まず…

今回はプログラミング入門を終えて間もなく、今まで学んだことの復習を兼ねているので教材に沿って進めていった。

内容に戻ること第4章「実践サーバーサイドプログラミング」

####17.【サービス開発2】プロジェクトの作成と認証の実装

元記事を表示

child_processでデータ転送する時、進捗を取得する

## 概要
ローカルマシンからリモートマシンにデータ転送する時、進捗を取得する方法で少し手こずったのでメモ。
scpを使った方法ではうまくいかず、rsyncを使っています。

## サンプルコード

“`js
const childprocess = require(“child_process”);

const sourcePath = “転送するデータのパス”;
const destPath = “転送先ユーザー名@転送先ホスト名(IPアドレス):保存先パス”;

const spawn = childprocess.spawn(“rsync”, [
“-avzP”,
“-e”, // ホスト名だけで接続できる場合は不要
“ssh -i ローカルマシンの秘密鍵ファイルパス(~/.ssh/xxx.pemなど)”, // ホスト名だけで接続できる場合は不要
sourcePath,
destPath,
]);

spawn.stdout.on(“data”, (data) => {
var per = data.toString().match(/

元記事を表示

node.jsからADO(ActvieX Data Object)を利用する方法

## 目的

* 10年ぶりにWSHを利用したところ、ふとTypescriptでActiveX使えたら幸せではないか?と思い付き調査
* node.jsからActiveXを利用するライブラリがあるのではないか?
* ライブラリがあるなら、TypeScriptでも使えるのではないか?
* Typescriptが使えるのであれば、ADOの型定義を誰か作っているのではないか?

## 調査結果

nodeでActiveXオブジェクトを生成し、型指定することは可能でした。

* node.jsでActiveXを利用するためには「[winax](https://www.npmjs.com/package/winax)」を使う
* TypeScript用の型定義もnpmに用意されている
* @types/activex-adodb
* @types/activex-adox

## 1:javascript(node)でADOを利用

* [winax](https://www.npmjs.com/package/winax)をインストール
“`bash
npm i win

元記事を表示

GoogleContainerTools/distrolessでshしたい俺の人生

俺です

[コレ](https://github.com/GoogleContainerTools/distroless)でshしたいときはdebugタグを使います。
busybox/shを実行するかpath通ってるのでsh実行するです。

“`
❯ docker run -ti –entrypoint “/busybox/sh” gcr.io/distroless/nodejs:14-debug
Unable to find image ‘gcr.io/distroless/nodejs:14-debug’ locally
14-debug: Pulling from distroless/nodejs
5dea5ec2316d: Already exists
bb771d6dc9a1: Already exists
e4a0058105ea: Already exists
6f78ac1091ad: Already exists
826040e829d0: Already exists
Digest: sha256:5ba14b105d669655871b511466100c

元記事を表示

Node.js: Server Sent Events のサンプル

実行結果
![node_server_sent_events.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/179446/1fd4c76c-1ebf-9045-c2dd-3a4c8116f0d5.png)

“`js:sse_server.js
// ——————————————————————-
// sse_server.js
//
// May/19/2021
//
// ——————————————————————-
var http = require(“http”)
var fs = require(“fs”)

const port = 1027

http.createServer(function (req, res) {
const index = “./sse.html”
var fileNa

元記事を表示

2021年に作るべき7つのフルスタックプロジェクト

以下はHenry Boisdequin( [dev.to](https://dev.to/hb) / [Twitter](https://twitter.com/henryboisdequin) / [GitHub](https://github.com/henryboisdequin) )による記事、[7 Fullstack Projects You Need to Make in 2021](https://dev.to/hb/7-fullstack-projects-you-need-to-make-in-2021-bdn)の日本語訳です。

どのようなフルスタックプロジェクトを作るべきか?
もしこのような疑問を持ち続けているのであれば、あなたは正しい場所にいます。
私は、2021年に作るべき7つのフルスタックプロジェクトのリストをまとめました。
早速、挑戦してみましょう!

# E-commerce Site
![](https://res.cloudinary.com/practicaldev/image/fetch/s—g_FJGC1–/c_limit%2

元記事を表示

聞いたことがある程度だったNode.jsについてふわっとまとめる

# はじめに
Node.jsってふわっと聞いたことありましたが、何かよくわかっていなかったので個人的にふわっとまとめます。
間違っている箇所があったらお手数ですが教えていただけると嬉しいです。
*「Node.js超入門[第3版]」を参考にしています。

# Node.jsって何だろ
> Node.jsとは、JavaScriptのプログラムを実行するための環境(ランタイム環境)。

ということなのですが、個人的に正直ピンときていませんでした。

でも以下のような説明を見て、だからNode.jsって必要なんだなぁ、と。
以下、Node.jsの説明の要約です。

>以前はWebブラウザの中だけでJavaScriptは動いていた。
でもNode.jsでJavaScriptで更に以下のことが可能になった。

> #####1.JavaScriptのプログラムがそのまま動く
サーバー側とクライアント側で2つの言語を組み合わせて開発するのが普通だった。
でも、Node.jsだとサーバー側もクライアント側も同じ言語であるJavaScriptで動かせるようになる!

> ##### 2. Webサーバー

元記事を表示

JavaScript初心者のためのTypeScript入門

# JavaScript初心者のためのTypeScript入門
Macを想定しています

「ターミナル?」ぐらいの本当に初心者を想定しています
中級者や上級者は飛ばし読みしてください

環境
mac Big sur 11.2.3

##Nodeのインストール
インストールは[こちら](https://prog-8.com/docs/nodejs-env)
>progate様

##TypeScriptのインストール
下記のコマンドをターミナルで実行するだけです

“`shell
npm i -g typescript
“`

`tsc -v`と入力してエラーが返ってこなければ成功です

“`shell
tsc -v
Version 数字
“`

## Hello World

好きな場所に`フォルダ`と`index.ts`を作ってください

今回は`Desktop/typescript/index.ts`の構成でいきます

### 下準備

ターミナルで

“`shell
cd ~/Desktop/typescript/
“`

### コーディング

好きなエディターでコ

元記事を表示

データをパスワードだけで暗号化し、ファイル化して保存することも可能なnpmパッケージを作った話

いい感じのものが無かったので作りました。

[@sounisi5011/encrypted-archive – npm](https://www.npmjs.com/package/@sounisi5011/encrypted-archive)

宣伝も兼ねていますが、どちらかというと暗号技術について詳しい方の意見とか指摘とかが欲しいなという下心が強いです。

## 特徴

* 2021年現在、安全な(と考えられている)暗号アルゴリズムを採用しています。具体的にはAES-GCM 256ビットとChaCha20-Poly1305です。
* パスワードは最新の鍵導出関数[Argon2](https://ja.wikipedia.org/wiki/Argon2)を使って変換しています。
* ファイル化することを考えて、圧縮アルゴリズムにも対応しています。
* 生成されたデータに復号に必要な全ての情報が含まれているので、復号するときはパスワードしか要りません。ファイルに書き込んで保存すれば、[KeePass](https://keepass.info/)のデータベースファイルのように、時間が経

元記事を表示

ちょっと前のnodeで開発されたIonicアプリを動かす方法の覚書

## はじめに
業務上、2,3年前(かもっと前?)の少し古いバージョンのionicを使って開発されたアプリを動かさないといけなくなり、なんかうまく動かないので、なんとか動かす方法を調べました。

まあ、結論から言ったら単純で、アプリで使われていたパッケージ(のバージョン)が、開発環境のnode(npm)のバージョンではサポートされていなかっただけでした。
初心者には世知辛いですね。

あ、ちなみにOSはWindows10です。

## 問題
とりあえず、プロジェクトディレクトリで、

“`
$ionic serve
“`
をしたら動かなかった。

それは当たり前のことで、というのも
[Githubからダウンロードしたリポジトリを、自分の環境で起動させる方法(Ionicの場合)](https://qiita.com/kokogento/items/61e99c2f0313f5b7bd2c)
に書いてあるように、package.jsonで記述されているパッケージがインストールされていないから。

そこで、同じく上の記事にも書かれているようにしたら動くかなと思ってやってみると、

`

元記事を表示

Node.jsでsqlite3モジュールを使ってみる

# はじめに
Node.jsを使ってDB操作をしてみたかったため,sqlite3モジュールを使ってみました。
こちらの記事は,その際の備忘録となります。

# 大まかな流れ
1. 必要なパッケージのダウンロード
2. 実行ファイルの作成
3. 実行

以下で一つ一つについて詳細に説明します。

# 1. 必要なパッケージのダウンロード
今回は,sqlite3モジュールを利用しますので,以下のコマンドでパッケージをダウンロードします。

“`console:npm5.0.0以降を利用している場合
$ npm install sqlite3
“`

“`console:npm5.0.0より前のバージョンを利用している場合
$ npm install –save sqlite3
“`
– `–save` オプション : package.jsonのdependenciesに追加される(npm 5.0.0 以降ではデフォルト)

# 2. 実行ファイルの作成
今回は、ダミーのデータベースを作成し、その中身をコンソールログに出力するようなサンプルを作成します。

“`js:sam

元記事を表示

Pulsar Node.jsクライアントライブラリを使ってみた

## はじめに

こんにちは。

本稿では、Pulsarの[Node.jsクライアントライブラリ](https://github.com/apache/pulsar-client-node)(以下、pulsar-client-node)を使って、簡単なメッセージの送受信をしていきます。
サーバには、standaloneモードのPulsarを起動させます。

今回は、CentOS 7.5.0 1台の上に以下の環境を構築して試していきます。

* サーバ
* Java 11
* Pulsar(standaloneモード) v2.7.1

* クライアント
* Node.js v12.22.1
* pulsar-client-node v1.3.0
* pulsar-client-cpp(後述) v2.7.1

## サーバの準備
ここでは、メッセージの送受信を行うためのサーバを準備していきます。

まず、Pulsarのstandaloneモードを動かすために、Javaが必要になります。
Javaのインストール後、Pulsarのバイナリファイルが入ったアーカイブファイルを

元記事を表示

AWS CLIのプロファイルを簡単切り替え

AWSのアカウントを複数使用している場合など、プロファイルを切り変えることがあるかと思います。

コマンド実行時に指定したり、

“`sh
$ aws s3 ls –profile test
“`

環境変数に指定して切り替えが可能です。

“`sh
$ export AWS_DEFAULT_PROFILE=test
“`

今回、コマンドから簡単にプロファイル切り替えられるようにしてみました。
[awsp](https://github.com/johnnyopao/awsp)というnpmのライブラリをフォークして実装しています。

## コマンドを使用可能にする

[こちら](https://github.com/itouuuuuuuuu/awsp)から、必要なソースをcloneします。

“`sh
$ git clone https://github.com/itouuuuuuuuu/awsp.git
“`

cloneした `awsp`ディレクトリ内でパッケージをインストールします。

“`sh
$ cd awsp
$ npm i
“`

最後に、`.zshr

元記事を表示

Googleフォト容量無制限終了に備えて非root化なPixelをGoogleフォト アップロードサーバーにしてみる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/207109/5725e5af-d0d8-686f-0805-981e6e421771.png)

# はじめに

2020年11月に[Googleアカウントのストレージポリシー変更](https://japan.googleblog.com/2020/11/storage-policies-update.html)のアナウンスがあり、2021年6月1日よりGoogleフォトの容量も無制限ではなくなることになりました。
しかし以下の記載のように2021年5月現在発売中のPixel端末からアップロードされた写真は、引き続き高画質であれば容量無制限となります。

> また、Google Pixel 3 〜 5 の端末をご利用の場合、対象デバイスから高画質でアップロードされた写真と動画は、今回の変更の対象外です。つまり 2021 年 6 月 1 日以降も写真と動画についてはストレージに計上されず引き続き無制限でお使いいただけます。

※`Googl

元記事を表示

GitHubのRESTAPIをもちいてclosedされたプルリクエスト中の、削除されていないfeatureブランチを列挙する方法

# 目的
GitHubを何も考えず運用していくと、featureブランチが増えていく傾向がある。
今回は、closedされたプルリクエストのブランチを列挙して削除して良いかを検討するためのツールを作成する。

実はGitHubはREST API経由で操作を行うことができ、今回はそれを利用するものとする。
https://docs.github.com/en/rest

# 前提
以下の環境があること

– Node.js(v12.20.1)が使用できること
– [GitHubのアクセストークンが存在すること](https://docs.github.com/ja/github/authenticating-to-github/creating-a-personal-access-token)

# コード
## インストールするライブラリ

– request
– request-promise

## GitHubの操作を行うクラス

“`js:GitHubCtrl.js
const rp = require(‘request-promise’);

class GitHu

元記事を表示

【Node.js】dotenvで環境変数設定


Node.jsの環境変数について、同じような記事はたくさんあるけど、いつも忘れるので自分用メモを兼ねて。

##dotenvをインストール

“`
npm install –save dotenv
“`

##コード

たとえば、あるURLを環境変数にする場合

以下のように、.envファイルを作成する。
(ファイル名が、.envで、同じフォルダに保存する)

“`
URL=https://www.abcdefg.com
“`

すると、以下のように、process.envで呼び出せる。

“`js:hogehoge.js
require(“dotenv”).config();

const URL = process.env.URL

“`

元記事を表示

ExpressとmongoDBを使ったREST APIをTypeScriptで組んでみる【1.環境構築編】

## はじめに

先日React学習のためにローカル環境でJSON Serverと連携したテックブログを組んだのですが、今後の課題にしていたmongoDBとの連携を行っていく記録になります。

https://qiita.com/himorishige/items/7ebd87ddaf7c86901b9a

今回は環境構築ということでmongoDB Atlasの設定と、環境設定まで。

**1. 環境構築編(この記事)**
2. mongoDBとの接続
3. Model・Controllerの作成
4. 完成!?

## mongoDB Atlasの設定

今回は1つのアカウントで1つ限定になりますが、512MBのストレージまでのデータベースを無料で利用できるmongo DB Atlasを利用しました。
googleアカウントを持っていると簡単にサインアップできます。

https://www.mongodb.com

このあと画像がたくさん続きます。。。

![The_most_popular_database_for_modern_apps___MongoDB.png](https

元記事を表示

Node.jsでAutoHotkeyをスクリプティングする

Node.jsでAutohotkeyプログラムが書けると、他のライブラリ、例えばウェブサーバーのExpress.jsや、WebSocketなどnode.jsの便利なライブラリと統合して、
フレキシビリティの高いプログラミングを行うことができます。

以下は下記の関数を定義してから実行できるコードの例です。
このコードではシンプルに、マウスクリックをして→”hoge hoge”とキーボードタイピングする、という動作を行います。

“`js
await ahk({program: `MouseClick, left`});
await ahk({program: `send, hoge hoge`});
“`

今回は特にこれといったnode.jsのためのautohotkeyラッパーライブラリを使う、といったことはせず、シンプルに手軽に使える関数を定義してみます。

以下は軽く書いてみたコードです。

“`js

const fs = require(‘fs’);
const exec = require(‘child_process’).exec;

// ..

async f

元記事を表示

OTHERカテゴリの最新記事