Node.js関連のことを調べてみた2022年06月22日

Node.js関連のことを調べてみた2022年06月22日
目次

VS Codeでnpm script をタスク登録しておくと便利だよ (ターミナルから実行している人へ送るTips)

# 概要

* みなさんnpm scriptの実行どうやってますか〜?
* 僕は普段は、VS Codeのターミナルからコマンドを直接打って実行しています。
* ただ、npm scriptが増えてくるとあれ、、あのコマンドなんだっけってなることあると思うんですよね、あとはプロジェクトごとにnpm scriptも変わってきますし、
* 今回はそんな人へ送るVS Code活用術について記事にしてみました。(織田さん、このTips教えていただきありがとうございますw)

# VS Codeでnpm script をタスク登録

* npm scriptってやりたいことが増えると、下記のようにめっちゃ増えていきますよね、
* そうすると実行時に、あれ。。なんだっけってなりがちです。

“`json
{
“scripts”: {
“start”: “hogehoge”,
“build”: “hogehoge”,
“prebuild”: “hogehoge”,
“postbuild”: “hogehoge”,

元記事を表示

githubのスター数の一覧を取得するスクリプト

# 背景
githubのリポジトリのスター数を色々比較して見たかったので出力できるスクリプトを作ってみた。

# 実行方法
## 事前準備
– inファイルを用意しておく
– 対象リポジトリ名一覧を記述
– .envファイルを用意しておく
– GITHUB_TOKENを定義
## 実行
“`console
$ yarn add ygor @octokit/core fs readline dotenv
$ node task.js output_star
“`

# コード
https://gist.github.com/tashua314/3ecdfb83b5aa4a924c1209471c00ef42
“`javascript:task.js
/**
* `https://github.com/{owner}/{repo}` のownerとrepoの情報をまとめたファイルを読み込み、
* スター数一覧を追記したファイルを出力する。
*
* # 実行例
* node task.js output_star
*
* # inファイル例
* “`

元記事を表示

Node.jsの基本操作

Macで動作確認済み

### Node install 確認
node -v
v18.2.0

元記事を表示

私のNodeJS+TypeScriptプロジェクト初期設定手順

# この記事について

NodeJS環境で実行するサーバサイドアプリケーション開発において
新規プロジェクト(リポジトリ)に TypeScript、フォーマッタ(Prettier)、リンタ(ESLint)、単体テストツール(Jest)を導入する手順のメモ
※適宜加筆修正を行っていく予定

# 手順

## package.json の生成

“`sh
npm init -y
“`

## TypeScript の導入

TypeScript本体とNodeJS組み込み機能の型定義パッケージをインストール

“`sh
npm install –save-dev typescript @types/node
“`

### tsconfig.json を設定

以下のコマンドで、コメント付きの tsconfig.json ファイルが生成されるのでいくつか設定を変更する

“`sh
npx tsc –init
“`

以下の設定例ではソースコードを src ディレクトリ、生成物を dist ディレクトリに配置する設定となっている

“`json:tsconfig.json 設

元記事を表示

実験的なJavascriptの仕様であるECMAScript throw expressionsを利用してみた ESLintの設定も

## 以下の記事を参照して頂ければと思います

https://note.com/shift_tech/n/n2a3b9bab4c50

## 補足
ソースコード全体は以下。

https://github.com/yuta-katayama-23/node-express/commit/64bae9571175e44eaf3a63d7805d50e09cade55c

以前、[ところでwebapckでESLintが動くというけどタイミングは?](https://qiita.com/yuta-katayama-23/items/5d73bbe79c19301551df#%E3%81%A8%E3%81%93%E3%82%8D%E3%81%A7webapck%E3%81%A7eslint%E3%81%8C%E5%8B%95%E3%81%8F%E3%81%A8%E3%81%84%E3%81%86%E3%81%91%E3%81%A9%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AF)において、ESLintが実行されるコードがトランスパイ

元記事を表示

nodemailerとGmailと2段階認証

2段階認証を使っているGmailのアカウントを使ってnodemailerでメールを送ろうとしたら詰まったので、自分用の備忘録メモ。
## nodemailerでGmailからメールを送りたい
nodemailerでGmailを使ってメールを送る場合はこんな感じのコードでできる。

“` js
const nodemailer = require(‘nodemailer’);

async function sendEmail() {
const transporter = nodemailer.createTransport({
service: ‘gmail’,
auth: {
user: process.env.EMAIL,
pass: process.env.EMAIL_PASS,
},
});

const mailContents = {
from: process.env.EMAIL,
to: process.env.TO_EMAIL,
subject: ‘Test Mail’,

元記事を表示

Twitter Api 登録から使用まで node.js win10

ツイッターアカウント持ってれば割とすぐ終わると思います。

お試しでAPIを打つだけなら、Twitterアカウントにアプリを連携するだけでブラウザからAPIを打てた。
https://oauth-playground.glitch.me/?id=createTweet

API利用申請は0分で終わったので、緩くなったのかもしれないです。

登録作業は下記を参照
https://qiita.com/kzthrk/items/84acb969dc0b23aeae58
API申請(これは英文不要の作業)
https://toxublog.com/blog/twitter_api_apply/

ブラウザのjavascriptからAPIは使用できないので node.js をインストール(windown10)
https://qiita.com/echolimitless/items/83f8658cf855de04b9ce

PowerShellからnodeが使用可能になったら最初の記事にあるnode.jsの部分を参照してサンプル作成する。
※必ずエラーが出るはずなので、err

元記事を表示

パスワードを保存する時に最低限やるべき事 不可逆暗号(ハッシュ)化

## はじめに
仮に自前で認証機能を実装する場合、パスワードを保存する際には最低限すべき事があり、それについて少し理解を深めてみたので備忘録を残す。

※勉強中の身のため、誤りや理解不足等あるかもしれません。もしあればご指摘いただけると幸いです。

## パスワード保存時には不可逆暗号(ハッシュ)化をする
パスワード保存時にはそのままDBに保存するのは絶対NGで、[sha256](https://wa3.i-3-i.info/word15997.html)などの暗号学的に優れたハッシュ関数でハッシュ化するのが鉄則になる。

そして、単にハッシュ化すればいいのではなく、ソルト(Salt)と呼ばれるランダムな文字列をパスワードに追加してハッシュ化する必要がある。理由としてはハッシュ化の方法が分かれば https://hashtoolkit.com/ のようなサイトで簡単に逆引きができてしまうため。

実際にどのようにパスワードを保存すればいいのか?だが、例えば以下のようなコードになるだろう(以下はORMの[Sequelize](https://sequelize.org/)を利用している時

元記事を表示

Twitter APIを使ってツイートしてみた

## 背景

Node.jsを学び始め、APIを学び始め、
TwitterやQiita等でもアウトプットし始めた。

ということで、
これらを纏めて一緒に触ってみよう。と思った今日この頃。笑

## 前提
* Node.js(v16.14.2)
* Twitter開発者アカウント取得
1)Twitter画面右下の「・・・」の中にある「開発者」をクリック
![スクリーンショット 2022-06-18 130351.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627323/fc863426-fc35-643d-d12d-4191f30964b6.png)
2)Developer Portalで、sign upをクリック
3)名前、国、目的等を入力
![スクリーンショット 2022-06-18 131542.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2627323/506ef1a5-d04b-784e-caf5-31

元記事を表示

国際信州学院大学をSeleniumで、スクレイピングする【TypeScript】

国際信州大学のページタイトルとニュース一覧をスクレイピングを行います。
[国際信州大学のホームページ](https://kokushin-u.jp/)

また事前に、ChromeDriverとGoogle Chromeのインストールが完了していることを前提に行います。
## 使用技術
– TypeScript
– Node.js
– Selenium
– WSL2(Ubuntu)
## 初期化処理
– Google Chromeの設定:`init`
– スクレイピング先のURLの設定:`setUrl`

“`ts
import { Builder, By, Capabilities, WebDriver } from ‘selenium-webdriver’;

let webDriver: WebDriver | null = null;

/**
* 初期化処理
*/
const init = async () => {
webDriver = await new Builder()
// Chrome起動時のオプションの設定
.withCapabilit

元記事を表示

【Express】ESM方式でimportするときにルーターを使う方法

# なぜESM方式を使ってるのか
ESM Moduleを使おうとしてpackage.jsonに`”type”: “module”`とやっているとrequireが使えないので

# やり方
まずは普通にimportでやる
“`javascript:index.js
import hoge from “./hoge.js”;

app.use(“/hoge”, hoge);
“`

お次に`hoge.js`を書いていく
“`javascript:hoge.js
import express from “express”;
var router = express.Router(); //ルーターを生成

router.get(“/puyo”, function(req, res){
//なんかの処理
})

export default router;
“`

完成

元記事を表示

npm WARN config global `–global`, `–local` are deprecated. Use `–location=global` instead.が出た時の解決策

数日前に突然“`npm WARN config global `–global`, `–local` are deprecated. Use `–location=global` instead.“`なるエラーが出るようになった。
どうやらnpmをグローバルインストールしていると“`–location=global“`推奨のメッセージが出てしまうらしい。
npm8.12.1ではすでに修正されているので、“`npm -g update“`でアップデートすれば直るとのこと。(エラー時点では、8.11.0を使っていた)

代替策としては、program Files > nodejsインストールフォルダ内のnpmファイルとnpm.cmdファイルを以下のように変更する。

“`diff_batchfile:cmd 23行目
– NPM_PREFIX=`”$NODE_EXE” “$NPM_CLI_JS” prefix -g`
+ NPM_PREFIX=`”$NODE_EXE” “$NPM_CLI_JS” prefix –location=global`
“`

“`di

元記事を表示

Docker-compose3でnode.js&express&mongodb&nginxの環境を整える[完全版]

# はじめに
 これはある記事を参考にnode.jsとmongodbとnginxのDocker環境をcomposeでめっちゃお手軽に作ったろ、とか思ったらエラーしたため案外悪戦苦闘してしまった人の後日談です。
 記事を書くとしたら、以下のURLをモロパクな感じになっちゃうと思って遠慮していた(というかダメ)なんですが、久しぶりに環境を整えようとしてみたら思ったよりもメンドクサかったので、備忘録という免罪符を元にモロパクしようと思います。
 モロパクしようと思ったのですが、ついでにexpress-generatorを使用してテンプレートを利用してみようと思って、少し本家様の流れから改変しています。また、この記事はCentOS7をインストールした直後を想定していたりいなかったりしています。

[引用]

https://zenn.dev/cizneeh/articles/nginx-node-mongo-docker-example#docker-compose.yml

# 環境
**2022/06/17**
・CentOS7
・Docker 1.13.1
・Docker-compose

元記事を表示

AWS IoT Coreにブラウザから様々な認証方法で接続してみる

AWS IoT Coreとして、MQTT ブローカが実装されており、自身でブローカを立てる必要がないですし、ブラウザ向けのクライアントライブラリもあるので、楽です。

AWS IoT Coreの認証方法にはいくつかの種類がありますので、それらを実際に試してみます。状況に合わせて使い分けてみてください。

ちなみに、今回扱うのは認証方法であって、MQTT/WebSocket/Httpといったプロトコルの種類ではないです。プロトコルは、AWS IoT Core側は特に違いは意識する必要はないですし、クライアントライブラリも違いを最低限にしてくれています。

以下の認証方法を扱います。

① (まずはNode.jsから)AWS IoT証明書を使って認証する。
② IAM認証
③ IAM+AssumeRole認証
④ Cognito認証
⑤ カスタムオーソライザ

<やること>
・AWS IoT Coreに認証して接続後、トピック名「test_sub」に対して、Subscribeします。
・いずれかのクライアントから、トピック名「test_sub」に対してPublishします。

ソースコード

元記事を表示

Node(npm)でWebpackコマンドでエラーになる

# はじめに

「TypeScriptハンズオン」という書籍を勉強するにあたって、書籍の環境構築手順をDocker環境で構築しようと考えました。

試行錯誤して1度できたのですが、なぜか2回目にやったときにコマンド実行でエラーが発生しました。そこで発生した事象が調べたところどこにもなかったのでまとめます。

# 問題

以下のようなエラーが発生しました。

“`
$ npx webpack-cli init
=> [webpack-cli] No commands found to run

$ npx webpack-dev-server
=> const maxPort = 65_535でシンタックスエラー
=> webpack-dev-server syntaxerror unexpected token =のエラーもでた
“`

前に1度作成したときにはできたのになぜか同じ手順を踏んでもできなくなっていました。

# 解決方法

原因はDockerで利用している`Nodeイメージ`が**古い**ことでした
`node:10`を古い記事をみて利用していました。これを`node

元記事を表示

地震情報を簡単に扱いたい!

:::note warn
読みにくい記事に注意してください….。
:::

## tl;dr
地震情報を簡単に扱えるようにするやつ

## はじめに…

まずは皆さんに、P2PのAPIのすばらしさをば
・[WebScoketAPI](https://www.p2pquake.net/json_api_v2/#/)から送られてくるやつはJSONなので扱いやすい(最高)
・情報伝達がすごいほど早い
・すごい

## 今回作った奴

https://github.com/akikaki-bot/p2pws_getter

今回はTypeScriptで大部分を書きました。TSは簡単なやつでしか書いてないので結構難しかった….。

## しくみ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2594613/ed3b92f1-71c4-3547-1f59-47b14ce82236.png)

## 感想

たのちかった。TypeScriptだいちゅき。

## Link
APIの本
ht

元記事を表示

【対応メモ】npm WARN config global `–global`, `–local` are deprecated. Use `–location=global` instead.

Reactを使おうと思ったら

“`
npm WARN config global `–global`, `–local` are deprecated. Use `–location=global` instead.
“`
– npm 警告 グローバル設定 `–global`, `–local` は非推奨です。代わりに `–location=global` を使ってください。

みたいな警告が。

## 調べてみる

調べてみると、こちらのstackoverflowの記事がヒット。

https://stackoverflow.com/questions/72401421/npm-warn-config-global-global-local-are-deprecated-use-location-glo

Windowsで起こる現象みたいですね…?

## 対応策

どうやら…**node.js**がインストールされているディレクトリ(**Program Files/nodejs**のはず)の中にある

– npm
– npm.cmd
– npx
– npx.cm

元記事を表示

arraybuffer 画像を FormData で Node.js サーバにアップロード

LINE WORKS のトーク Bot を使って送信した画像をLINE WORKSのストレージからダウンロードして、 Node.js サーバーにアップロードするサンプルです。
LINE WORKSのストレージからダウンロードした画像はarraybufferの形です。
axiosを利用します。

#### ダメなコード

“`
import Axios from ‘axios’;
const FormData = require(‘form-data’);

……

try {
const lwResponse = await Axios.get(
‘http://storage.worksmobile.com/openapi/message/download.api’,
{
headers: {
consumerKey: consumerKey,
authorization: ‘Bearer ‘ + accessToken,
‘x-works-apiid’: apiId,
‘x-w

元記事を表示

型定義リポジトリをGitHub Packagesで社内限定公開する(yarnでもnpmでも)

サーバーサイドと、クライアントサイドで共通して利用する型定義リポジトリを作ります。

型定義を社内のリポジトリで共通して使用します。`DefinitelyTyped`的な使い方が理想です。

では作っていきましょう。

なお先人がいらっしゃったので参考にしています。

https://zenn.dev/odiak/articles/950f05a34e9c84

# 手順
初期化
“`
npm init
“`

TypeScriptとPrettierを追加
“`
yarn add -D typescript prettier
“`

tsconfig.jsonはこんな感じにしてます(ほぼ参考記事コピペ)
“`json
{
“compilerOptions”: {
“target”: “ES2017”,
“module”: “CommonJS”,
“declaration”: true,
“strict”: true,
“outDir”: “./dist”
},
“include”: [“./src/**/*”],
“ex

元記事を表示

Next.js学習まとめ

# Next.jsの学習まとめ

### Create Next App
“`zsh
npx create-next-app nextjs-sample
“`

### ルート管理
ReactRouterではそれぞれのコンポーネントでルートを管理していたが、
Pages内のフォルダディレクトリで管理できるようになるメリットがある。
PagesフォルダはNextCreateApp時に追加されるので、これを使用する。
また、ルーティング管理のために特別な名称があり、
index.** というファイル名は”/”を表しており、
_**.**というようにアンダーバーから始まる場合はルーティングされず
ルーティング不要なファイルに使用されている。(_app.jsなど)
[**].**とした場合はパラメータを表し、
[…**].**とした場合は複数のパラメータを受け取る。

|階層1|階層2|階層3|
|—-|—-|—-|
|Pages|_app.js|
||index.js|
||main|index.js|
|||content.js|
|||[articleId].js|

元記事を表示

OTHERカテゴリの最新記事