## Node.jsとは
JavaScriptを**PC上**で動かすための実行環境です。
**ブラウザ上**で動くことが有名なJavaScriptですが、Node.jsをPC上にインストールすることで、PC上でもJavaScriptが動作します。
詳しく知りたい人は[公式サイト](https://nodejs.org/ja/about/)をご確認ください。
## nodebrewとは
Node.jsのバージョン管理ツールです。
複数のバージョンを管理することができます。
## インストール方法
2種類のインストール方法があります。
1. 公式サイトからのインストール
2. nodebrewを利用する(今回の方法)
今回は、2の方法でNode.jsをローカル上にインストールします。
1の方法は↓をご確認ください。
https://qiita.com/s_yamaoka927/items/4fd8dacffa73bd64de1b
## 手順
以下の手順でNode.jsをインストールします。
1. nodebrewをインストールする
2. Node.jsをインストールする
#
JavaScript
Mac
Node.js
インストール
nodebrew
## Node.jsとは
JavaScriptを**PC上**で動かすための実行環境です。
**ブラウザ上**で動くことが有名なJavaScriptですが、Node.jsをPC上にインストールすることで、PC上でもJavaScriptが動作します。
詳しく知りたい人は[公式サイト](https://nodejs.org/ja/about/)をご確認ください。
## インストール方法
2種類のインストール方法があります。
1. 公式サイトからのインストール(今回の方法)
2. nodebrewを利用する
:warning:
今回は、1の方法を行いますが、本格的な開発にはオススメしません。
Node.jsのバージョンが変わると、予期せぬバグを引き起こす可能性があるためです。
本格的な開発では、バージョン管理ができる、2の方法をおすすめします。
2の方法は↓をご確認ください。
https://qiita.com/s_yamaoka927/items/cf1bbd755c5636c3ce35
## 手順1
以下の公式サイトに行き、『ダウンロード macOS (x64)』の**推奨版*
JavaScript
Mac
Node.js
インストール
初心者向け
大きく分けて3つある
Module
@Moduleデコレータのプロパティ
・providers: @Injectableデコレータが付いたクラスを記述
・controllers @Controllerデコレータが付いたクラスを記述
・imports: モジュール内部で必要な外部モジュールを記述
・exports: 外部のモジュールにエクスポートしたいもの
以下はサンプル
・ユーザー機能を作成したとする
“`app.module.ts
import { Module } from “@nestjs/common”;
import { AppController } from “./app.controller”;
import { AppService } from “./app.service”;
import { UsersModule } from “./users/users.module”;
@Module({
imports: [UsersModule], // 作成したUsersMo
# ■はじめに
郵便受けを実際に見に行かなくても投函物の有無を確認できるIoT装置を初心者が奮闘しながら作成してみました。
IoT初心者の方でも読みやすくなるような執筆に努めていますが、なにぶん初心者の文書になりますので、温かい目で読んでいただければ嬉しく思います。
# ■こんなもの作りました
郵便受けの底に重量センサー(ロードセル)を置き、プログラムを実行しておくことで、LINE BOTから投函確認されたときに投函有無を返答するものを作りました。
0gより軽いときに投函確認すると「投函物はありません」と返答してくれ、
0g以上のときに投函確認すると「投函物があります」と返答してくれました。
https://youtube.com/shorts/XT1WT0I6q4o?feature=share
動画は以下の順で確認し
Node.js
初心者
IoT
LINEmessagingAPI
obniz
# 始める前に
[この記事中](https://qiita.com/riversun/items/7f1679509f38b1ae8adb)の「マニュアル(手動)で修復する」が発生したらこの記事を進めてください.
# 脆弱性の確認
npm auditで脆弱性(vulnerability)のあるパッケージをリストする.
~~~bash
$ npm audit
~~~
実行結果(例)
~~~
=== npm audit security report ===
┌──────────────────────────────────────────────────────────────────────────────┐
│
Herokuがサービス終了するけど、類似サービス多すぎじゃね?
と思ったので、まとめさせていただきます。
GithubからそのままあげられるPaasです。
胡散臭いサービスが多すぎる
Qiitaでも、類似の記事を書いている方はいますが、サービスの数が多く判断しきれません。
また、リンクを踏んでみると、チープなサイトが多く、データを預けるには怖いっす。
結果選んだサービス
・[cyclic.sh](https://www.cyclic.sh/)
・[render](https://render.com/)
・digitaloceanで[dokku](https://dokku.com/docs/getting-started/installation/)
cyclic.sh
1番おすすめだけど、難点も
◇メリット
性能が高い
デプロイが早い
常時起動
無料でもドメイン名を変更できるらしい?
Node.js
Heroku
Paas
SPA
デプロイ
# はじめに
勉強がてら家計簿アプリを作成していた際に詰まった事柄のメモです。
アプリが持つ機能として”毎月のクレジットカード明細を画面上からアップロードできる”機能を持たせようとしていて、
クレジットカード明細は毎月大体100件前後のデータだったので、
画面でポチッとアップロードボタンを押すとすぐ登録処理が完了してほしいと考えていました。
# いざ実装しようとしてみると・・・
ググってみるとDynamoDBで複数件まとめてデータ登録するには”BatchWriteItem”を利用すればよいと分かったので、
100件ほどのデータをBatchWriteItemでputすると下記エラーにぶち当たりました。
“`
at ‘requestItems’ failed to satisfy constraint: Map value must satisfy constraint: [Member must have length less than or equal to 25, Member must have length greater than or equal to 1]”
“`
# どうしてPythonとC言語を戦わせる必要があるのか?
>まず最初に言っておかなければなりません。
>この戦いは、完全に私の勝手な想いによって始まりました。
>だから、PythonもC言語も悪くはありません。
#### 皆さん、Pythonって聞くとどんなことを想像しますか?
– 機械学習ができる
– Webサイトのスクレイピングができる
– 初心者が入りやすい
– **なんかかっこいい**
#### はい、ではC言語は?
– 初心者殺しの異名を持っている
– セミコロンを殺したくなる
– 意味わからないエラーが〇キブリみたいに出てくる
– **なんか嫌い**
– ~~臭い、汚い、きつい~~
これが __現実__ です。
簡単に言うとみんな __Pythonが大好きで、C言語は大嫌い__ 、、、
扱いづらいと思われているC言語ですが、実はあらゆる場所で使われているんです。
例えばみんな大好きPythonだって、C言語を元に作られているんですよーってね:sparkling_heart:
私は業務でC言語を扱っているため、C言語とは相棒みたいなものです!(~
Python
C
Node.js
api
LINEmessagingAPI
## いちいちコード書くのは面倒くさいと思った
### 経緯
個人の趣味のブログサイトでイラスト公開のページを作成した際、**Next.js**の``で画像を表示していました。
ただ`
`のレイアウトをコンポーネント化したのに、画像が増える都度に**Props**でパスを渡しながらコンポーネントを増やしていくのは、**まだ運用していないにも関わらずちょっと面倒だなと思った次第**です。
というかせっかく記事はNotionをCMSとして更新できるので、**画像の更新もコードいじりたくない**と。
### 案1:NotionAPIで取得
**記事内の画像は普通にNotionAPIで取得している**ので、ここの画像もNotionAPIで取得するということも考えました。
ただ、APIで取得した画像の仕様として1時間でリンク切れになってしまうのを画像置場で使うのは。。。
また``と違って自動最適化に対応しないので却下。
### 案2:S3などに置く
そもそも趣味でちょっとブログ書きたかっただけで、メインは画像ではないのでそこまでのコ
JavaScript
Node.js
glob
React
next.js
# そもそもの動機
**「強くなりたい」**
史上最強の男にだれでも一度は憧れるものです。
とはいえ、僕は筋力が無ければ、運動神経も悪い、ただの独身男性なので早々と断念しました。
方向性をぐるんと変えて、「妄想を形にできる最強のクリエイター」を目指すことに。
それがきっかけとなり、僕は[プロトアウトスタジオ](https://protoout.studio/)の門を叩いたのでした。
# なぜ習慣化するためのBOTを作るのか
プロトアウトスタジオには[Qiita上](https://qiita.com/organizations/protoout-studio)にメンバーが執筆した記事がたくさん投稿されています。
ので、まずは記事をたくさん読み込んで圧倒的に成長しようと考えたのですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281755/267f5593-15c4-f7ce-6ad3-31ca1a36d4e5.png)
そして、すぐに挫折することとなりました。
* 「よく投稿
JavaScript
Node.js
QiitaAPI
linebot
強くなりたい
Google系のAPIはOAuth認証、サービスアカウント、APIキーの利用の3パターンあると認識してますが、簡単な読み書きくらいのやりとりだとサービスアカウント利用は手ごろです。
> 参考
> [Google DriveのAPIをサービスアカウント認証方式でNode.jsから利用するメモ](https://qiita.com/n0bisuke/items/59607865040a63d1a640)
## 前提
以下ができてる前提になります。
– Google SheetsのAPIを許可してサービスアカウント作成
– 作成したサービスアカウントを対象のシートに権限付与
– サービスアカウントの鍵ファイルをJSON形式で取得
鍵ファイルをDLすると以下のような雰囲気の中身となります。
“`json
{
“type”: “service_account”,
“project_id”: “xxxxxxxx”,
“private_key_id”: “xxxxx”,
“private_key”: “—–BEGIN PRIVATE KEY—-○—–END P
JavaScript
Node.js
CircleCI
GoogleSpreadSheet
GitHubActions
## unreachableってなんですか
`unreachable`とは下記で示される関数のことで、要するに到達して欲しくない & し得ない場所に防御的に使う関数です。
“`tsx
export const unreachable = (msg?: string) => {
throw new Error(msg ?? ‘Something went wrong’)
}
“`
## unreachableの活用方法
私はこの`unreachable`の主に2つのユースケースで使用することが多いです。
**パターン1: 三項演算子のチェック**
“`tsx
type SomeUnion = ‘foo’ | ‘bar’
const fooOrBar: SomeUnion = ‘foo’
const hogeOrFuga =
fooOrBar === ‘foo’
? ‘hoge’
: fooOrBar === ‘bar’
? ‘fuga’
: unreachable(‘Unexpected value’)
“`
TypeScrip
JavaScript
Node.js
TypeScript
# 参考動画
VIDEO
https://github.com/john-smilga/node-express-course
# 完成したアプリケーション
https://node-project-3g21.vercel.app/
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/654025/8654b973-0e24-8ca8-8af3-c9033f2b46b0.png)
# ソースコード
https://github.com/iwasaki-hub/node-project
# How to create and deploy an Express.js app to Vercel?
https://syntackle.live/blog/how-to-create-and-deploy-an-express-js-app-to-vercel-ljgvGrsCH7ioHsAxuw3G/
# 設定ファイル
“
Node.js
Express
deploy
Vercel
# サマリ
LINE Messaging APIを使ってしゃべり相手(LINE Bot)を作りました。
# 背景
リモートやコロナ禍でコミュニケーションが減る中、
少しでもリフレッシュするためにしゃべり相手が欲しかった(さみしすぎだろ)
# ゴール
今回は、自分のメッセージに対して事前に設定した返事を返すBotを作成
(一部は用意された選択肢の中からランダムに応答、また[天気予報API](https://weather.tsukumijima.net/)でその日の天気を取得・応答)
**AIチャットボットではなく、いわゆるシナリオ型です。**
# 対象読者
– さみしい方
– LINE MessagingAPIに興味がある方
# 前提
– プログラミングがなんとなくわかること
(今回実施したのはおおまかに、Bot用LINEアカウント作成・ngrok・Node.jsの導入になりました。
参考記事をベースにさせていただいたこともあり、
自分はすべて初見でしたが本記事のレベルをやるには何とかなりました)
– コマンドラインの操作が初学者レベルに可能
(`cd`,`mkdir`,
Node.js
初心者
ngrok
linebot
LINEmessagingAPI
ユーザーIDで指定した相手にDMを送るコードを書いてみたよ
【開発環境】
・Discord.js v13 (v12も可)
・Node.js v16.x以降(v13の場合)
【必要な物】
・Dicord.js v13 (v12も可)
“`index.js
client.on(“messageCreate”, async message => {
if (message.author.bot) return;
if (message.content.startsWith(“!dm”)) {
const args = message.content.split(” “)[1]
if (!args) return message.channel.send(“ユーザーIDが入力されていません”);
const send = message.content.split(” “).slice(1).join(” “)
if (!send) return message.channel.send(“ユーザーが存在しません”);
try {
Node.js
bot
,
discord
discord.js
## はじめに
Single Page Applicationのフレームワーク Angular をコンテナで実行するまでを勉強したので、備忘録として残しておく。
## 1. node.jsのバージョン管理ツール nvm のセットアップ
macOSで、node.jsのバージョンを切り替えられるように、nvmをインストールして、その上でnode.jsを動作させ、Angularのコマンドを利用する。nvmのセットアップは、参考リンクを読めば解るので、補足はしない。
* 参考リンク https://github.com/nvm-sh/nvm
## 2. 最新バージョンのnode.jsをインストール
バージョンの指定無しでインストールを実行すれば、その時点の最新バージョンのnodeがインストールされる。
~~~shell: Terminal
$ nvm install
$ node –version
~~~
## 3. TypsScript コマンドのインストール
TypeScriptのスニペットのテストを実施するために、TypeScript から JavaScript
Node.js
Angular
kubernetes
プログラミング学習者です。これまでRubyとRuby on Railsを学習していて、これからJavaScriptの学習を始めるために行いました。
次の機会に、またいちからやり直しになりそうだったので、作業記録を残します。
## 環境
– macOS Monterey12.6、 プロセッサはintel。
– Homebrewはインストール済み。
## インストールの流れ
1. Homebrewを使って、Node.jsのバージョン管理ツールをインストール。ここではnvmを使用。
1. nvmを使って、Node.jsをインストール
1. 確認
1. .nvmrc ファイルに関すること(必須ではない。)
## 語句
– HomebrewはMacのパッケージマネージャ
– nvmは、Node.jsのバージョン管理ツール。バージョン管理ツールは他にもある。
– Node.jsは
> Node.jsは、サーバーサイドでJavaScriptを使うためのプラットフォーム
([【入門】Node.jsとは?利用シーンやメリットなどをわかりやすく解説 – カゴヤのサーバー研究室](https://w