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

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

いつの間にかインストールされてた「-」というnpmパッケージについて

# はじめに

:::note info
[TLB Enjoy Developers Advent Calendar 2022](https://qiita.com/advent-calendar/2022/tlb-enjoy) の6日目の記事です。
:::

いつもはAdventCalendarは見る側だったのですが、今回は初めて記事を書く側として参加できて嬉しいです!
**TLB Enjoy Developers Advent Calendar 2022** はテーマなど制限がないので自由に書こうと思います!

今回の記事ではnpmパッケージ「-」についてです!
特に技術的な記事ではなく、調べてみた系の記事ですが読んでもらえると嬉しいです。

# 経緯

## 「-」を知るきっかけ

ある日 **package.json** の **dependencies** を見ていると、ふと気になるパッケージがありました。

“`json
“dependencies”: {
“-“: “^0.0.1″,
}
“`

`”-“: “^0.0.1”,` と

元記事を表示

NexusスイッチとNMOSを連携させてみた


この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2022 の1つとして投稿しています。昨年の記事や関連する投稿記事は以下リンクよりご覧いただけます。

– 2017年版: https://qiita.com/advent-calendar/2017/cisco
– 2018年版: https://qiita.com/advent-calendar/2018/cisco
– 2019年版: https://qiita.com/advent-calendar/2019/cisco
– 2020年版: https://qiita.com/advent-calendar/2020/cisco
– 2020年版(2枚目): https://qiita.com/advent-calendar/2020/cisco2
– 2021年版: https://qiita.com/advent-calendar/2021/cisco
– 2021年版(2枚目): https://qiita.com/advent-calendar/2021/cis

元記事を表示

Node.js と Deno と Bun のどれを使えばいいのか

現在注目されているサーバーサイドJavaScriptランタイムといえば、Node.js と Deno と Bun の3つが挙がると思います。この記事ではそれぞれのランタイムを比較し、将来的にどのような使い分けをしていけばいいのか考えます。

# Node.js と Deno と Bun の現在

## npmライブラリにはすべてのランタイムが対応

– Node.js:当然npmライブラリには対応しています。
– Deno:[npmパッケージを配布するCDN](https://zenn.dev/uki00a/books/effective-deno/viewer/how-to-use-npm-packages)や、[npmインポート](https://qiita.com/access3151fq/items/e38f78db2d96a1ddd6cc)を使うことで対応しています。
– Bun:対応しています。

:::note warn
「Denoが急に方針転換をしてnpm対応を始めた」というのはよくある間違いです。
[Big Changes Ahead for Deno](https

元記事を表示

NestJS GraphQLリゾルバ用のCacheInterceptorを実装してみた

NestJS では(CacheModule を導入した上で)コントローラに `UseInterceptors` デコレータで `CacheInterceptor` を指定することで、コントローラが返すレスポンスをキャッシさせ、サーバの処理負荷を軽減させることができます。

“`ts:app.controller.ts
@Controller()
@UseInterceptors(CacheInterceptor)
export class AppController {
@Get()
findAll(): string[] {
return [];
}
}
“`

しかしながら、この`CacheInterceptor`は、[公式ドキュメント](https://docs.nestjs.com/techniques/caching#auto-caching-responses)のWARNINGにも書いてあるように、GraphQLでは使用できません。

https://docs.nestjs.com/techniques/caching#auto-caching-re

元記事を表示

[windows][volta]windowsのnodeバージョン管理ツールとしてvoltaを利用してみた。

# 初めに
普段はmac使ってるんですけど、たまたまwindowsでコードを書く機会があってその時にvoltaを利用したので使い方を簡単に残します。
補足・間違いなどがあればコメントいただけると幸いです?
他に便利と思った内容は加筆していきます〜✨

## インストール
[こちらのリンク](https://docs.volta.sh/guide/getting-started)にあるWindows Installationの「download and run the Windows install」のリンクからインストーラーをダウンロードして実行してください。
インストール後にコマンドプロンプトを開いて以下のコマンドを入力しましょう。バージョンを表す数字が返ってくればOKです。
“`
volta -v
“`

## nodeのインストール
以下のコマンドでnodeをインストールすることができます。
“`
volta install node@(バージョン)
“`
具体的にはこんな感じです!バージョンを指定しない場合は最新版がインストールされます。
“`
volta inst

元記事を表示

react4 backendとの通信(hook)

# はじめに
nodeにuser情報を検索するapiとuser情報を登録するapiがある。
そこにreactからrequestをかけてresponseをもらう。
フロント(react)をメインにバック(express)も少し最後に載せる。
## フロント
“`:フロントコード(POST)
import { useState } from “react”;
const UserCreate = () => {
const URL = “http://localhost:8080/post”
const [userData, setUserData] = useState({
username: “”,
email: “”,
password:””
})
const getUserData = (data) => {
const { name, value } = data.target
setUserData({ …userData, [name]:

元記事を表示

nodenvライブラリをインストールしたはずなのに、nodenvコマンドが使えなかったので解決してみた。[パスを通せば解決。]

問題

・Node.jsライブラリをインストールしたはずなのに、nodenvコマンドが使えない。

“`
#/Users/ユーザ名/Work2
$ nodenv local 14.0.0
-bash: nodenv: command not found
“`

結論

・.bashrcファイルのパス設定を書き換えて,nodeコマンドのパスを通せば解決。

“`
#/Users/ユーザ名/
$echo ‘export PATH=$HOME/.nodebrew/current/bin:$PATH’ >> ~/.bashrc
$source .bashrc
$nodenv local 14.0.0
$node -v
v14.0.0
“`

結論に至るまで

予想した原因

今回の問題の原因があるとすれば、以下の2つだと考えました。

      ・そもそもNode.jsがインストールされていない。
      ・パスの設定がされていない。

元記事を表示

数 Steps で手軽に脆弱性対策をする方法

## はじめに

こちらの記事は「[Snykを使って開発者セキュリティにまつわる記事を投稿しよう! by Snyk Advent Calendar 2022](https://qiita.com/advent-calendar/2022/snyk)」の 6 日目の記事として投稿しています。

[私(@changeworlds)](https://twitter.com/changeworlds)からは、Snyk を使うことで、数 Steps で脆弱性対策をする具体的な方法についてご紹介いたします。

脆弱性対策というと企業に所属している人なら所属先のアプリケーション/サービス/プロダクトに対して、年次/Q 毎など定期的に脆弱性診断をしてもらっているかと思います。

しかし、本来問題というのは一定期間寝かせておいてから取り除くのではなく、気づいたときに取り除くものです。

とはいえ脆弱性診断を commit/push 毎にするというのは至難の業です。

そこで、登場するのが数 Steps で手軽に脆弱性対策を行える [Snyk](https://go.snyk.io/jp.html) で

元記事を表示

Pythonをdocker-composeで立ち上げてみる

# はじめに
 docker-composeでなくても、「dockerで一つコンテナを用意するだけではだめなのか」という問いもあるかもしれません。ですが、そもそもこれは通信アルゴリズムのテストに使用したかった、という経緯ですので、そこはまずご了承くださいな。
 この記事では、docker-composeによりpythonの仮想環境を整えるということのみに焦点を当てています。他、TCP/UDPによるnode.jsとの通信は他の記事にて解説する気ですのでよろしくお願いします。
 なお、この記事の成果物は以下のリポジトリに入ってますので、多少docker-composeに慣れていて「見れば分かるわ~わはははは~」という方は次のURLからクローンしてみてくださいな。(そもそもこの記事を見てないかな?)

https://github.com/DogKingFun/docker-compose_python

# ディレクトリ構成

“`
 
docker-compose.yml
python/
 ├ app.py
 ├ Dockerfile
 └ requirements.txt

元記事を表示

nodeのバージョンを下げる

Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (111)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1

こういうエラーでた

brew unlink node
brew install node@14
brew link –overwrite node@14
npm rebuild node-sass

元記事を表示

ssh2-sftp-clientを使ってAWS Lambda(Node.js)からSFTPサーバーにファイルをアップロードする

# イントロダクション

この記事は、[ミロゴス Advent Calendar 2022](https://qiita.com/advent-calendar/2022/milogos) 5日目の記事です。

AWS Lambda(Node.js)からSFTPサーバー宛にS3上のファイルを転送したいという要件がありました。
Pythonであればparamikoあたりを使うところですが、Node.js(TypeScript)で開発したかったのでライブラリを探してみました。
使い勝手がよさそうものとして `ssh2-sftp-client` が見つかったので使ってみることにしました。

# ssh2-sftp-clientとは

– https://www.npmjs.com/package/ssh2-sftp-client
– https://github.com/theophilusx/ssh2-sftp-client

ssh2-sftp-clientは、Node.jsのSFTPクライアントです。
[ssh2](https://github.com/mscdex/ssh2) のラッ

元記事を表示

DynamoDBの低レベルAPIをNode.jsから叩いてみた

# tl;dr

こちらをcloneして、READMEの通りにやってみてください!
DynamoDB、API Gatewayのサンプルコードがありますが、
他のAWSサービスにも応用はしやすくなっています。

https://github.com/the-red/dynamodb-low-level-api

# 背景

DynamoDBにデータを入出力するときにはAWS SDKを使う場合がほとんどだと思いますが、SDKの内部ではWeb APIを実行していて、SDKを使わずに生のAPIをそのまま叩くこともできます。公式ドキュメントには「低レベルAPI」として紹介されています。

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

低レベルAPIを実行するには、認証のため「APIリクエストの署名」というのが必要です。通常はSDK側で吸収してくれてる部分ですね。
署名ヘッダを使うサンプルは、検索すると色々と出てきます。たとえばクラスメソッドさ

元記事を表示

[HTML] nodejs + express でsessionStorage, localStorage を用いてログイン状態を管理

# 環境
nodejs
express
mongoDB

# Passport, サーバーからログイン状態を確認
“`javascript
app.get(‘/’, (req, res) => {
res.render(‘index.ejs’, { user: req.user })
})
“`
ログイン状態をpassportを用いて、サーバーから確認することができる。

https://qiita.com/junzai/items/e1268bdeabf5e8223b15

# index.jsでログイン情報をsessionStorageで管理
“`html:index.ejs
<% if (user) { %>