- 1. Node.jsについて勉強したのでまとめてみた。
- 2. 🔰TypeScriptの環境構築をまとめてみた
- 3. Array.fromAsync()とPromise.all()の違い【JavaScript】
- 4. ポート3000を占領する不届き者を倒せ!WindowsユーザーのためのローカルURL奪還作戦
- 5. CLIのプログレスバーを作ってみた
- 6. node.jsのDocker環境を作成する
- 7. 「現代魔術JS×Web設計」のイメージと概念〜ビルド編〜
- 8. ガチ初学者の落書き ノード
- 9. Web Application開発者向けロードマップ
- 10. サーバーをまたいでPHPからnode.jsを動かすサンプルコード
- 11. 【Node.js】カスタムエラークラスを書く
- 12. axious エラーハンドリングについて考える
- 13. VSCode の dev-container を使って、React + TypeScript の開発環境を構築する方法
- 14. 【個人開発】ChatGPTのプロンプト投稿アプリを作ってみた【React,Express.js,Node.js,MongoDB,Vercel,GitHub】
- 15. MERNスタックアプリをVercelにデプロイしてみた
- 16. ngrokのインストールと使い方
- 17. Node.js 14.17 開発環境を 2 分でデプロイ
- 18. axiosの使い方の初歩的なミス
- 19. WSL上のnpmコマンドがある日突然見つからなくなった件
- 20. Git何もわからん。ReactのフォルダをPushさせてくれ。
Node.jsについて勉強したのでまとめてみた。
## 勉強のきっかけ
普段からフロントエンド、バックエンド両方の開発でお世話になっているNode.jsですが、サーバー環境を簡単に作れるライブラリー程度に考えて、あまり理解せずに使ってきたので、良い機会だと思い勉強することにしました。ここでは私が気づいたポイントをシェアします。
## Node.jsとは?JavaScriptのフロントからサーバーサイドへの拡張Node.jsは、**JavaScriptをサーバーサイドで動作させるためのランタイム環境**です。もともとJavaScriptは、ユーザーのブラウザ上で動作し、動的なWebページを構築するために使われていました。しかし、Node.jsの登場により、サーバー上でもJavaScriptを実行できるようになり、開発者はフロントエンドとバックエンドの両方をJavaScriptで書けるようになりました。
Node.js以前はクライアントサイドではJavaScript、サーバーサイドではPHPやRubyを使って開発するのが一般的でしたが、Node.jsを使うことで**JavaScript一つでフルスタック開発**が可能となりました。
🔰TypeScriptの環境構築をまとめてみた
## TypeScriptでコーティングするために必要な環境構築についてまとめていきます。
※Udemyの内容を噛み砕いて私なりにまとめました。### TypeScript(TS)とは
JavaScript(JS)のスーパーセット(上位互換)
* 型を指定することができ堅牢なコードを書ける
* 古いWebページにも対応できる
などなど、さまざまな便利な機能が搭載されています。TSで書いたコードはJSにコンパイル(変換)され、JSで動的なWebページを実現します。
### 環境構築
1. VS-Codeで開発用フォルダを開く
1. ターミナルを開く `⌘ + J`
1. packege.jsonファイルの作成 `npm init`
1. 3実行時に設定についていくつか問われるが、全てEnterでOK
1. lite-serverをpackege.jsonに追加 `npm install dev-server lite-server`
1. packege.jsonの`scripts`オブジェクトに手動で`”start”: “lite-server”`を追加
* オブジェ
Array.fromAsync()とPromise.all()の違い【JavaScript】
ようわからんかったのでメモ
# TL;DR– Array.fromAsync()は順次実行
– Promise.all()は同時実行“`javascript
const sleep = delay => new Promise(resolve => setTimeout(resolve, delay))console.time()
await Array.fromAsync([200, 100, 300], sleep)
console.timeEnd()
// elapsed: 600msconsole.time()
await Promise.all([200, 100, 300].map(sleep))
console.timeEnd()
// elapsed: 300ms
“`https://qiita.com/mellbrother/items/715ff5dce5845381eeee#comment-202a45c5d467a5dd67dc
cc @juner
## 戻り値
どちらも解決した値が入ってくる。HTTPリクエストを投げたいときに
ポート3000を占領する不届き者を倒せ!WindowsユーザーのためのローカルURL奪還作戦
こんにちは、みんな。今日はローカル開発で頻繁に遭遇する問題について話すわ。特に、`http://localhost:3000/`を使おうとしたら、何者かに占領されていた時の対処法よ。
ふんっ、大切なポート3000が使えないなんて、本当に迷惑よね。でも心配しないで。この記事を読めば、あなたもその謎を解き明かせるわ。Windows PCでポート3000を占領している犯人を特定して、安全に解放するまでの手順を解説するわ。
## 1. コマンドプロンプトを開く
まずは、Windows PCでコマンドプロンプトを開くわよ。1. Windowsキー + Rを押して「ファイル名を指定して実行」ウィンドウを開く
2. `cmd`と入力して実行これでコマンドプロンプトが開くわ。準備はいい?次に進むわよ。
## 2. 占領者を調査する
次に、ポート3000を占領している不届き者を特定するわ。以下のコマンドを入力して:“`bash
netstat -ano | findstr :3000
“`これで、ポート3000を使っているプロセスのリストが表示されるはずよ。例えば:
“
CLIのプログレスバーを作ってみた
## はじめに
皆さん、こんにちは。株式会社BTMの風間と申します。
今回はCLIで動くプログレスバーを作成してみました。
実際に作ったのはこちら。![progressbar_animation.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3826118/6caf04ef-c5b2-864b-2d4f-bad5ed6f6801.gif)
コンソール(ターミナル)で、yum、apt、brewなどを利用したパッケージのインストールをされたことがある方は、こういった進行状況の表示をよく見ていると思います。
この進行状況の表示方法に以前から興味があったので、実際に作ってみて、使った方法をまとめてみました。
:::note info
本記事で紹介する実装・実行は以下の環境にて行いました。
・Windows11
・WSL2(Ubuntu 22.04.3 LTS)
・Node.js 20.11.1
・Git Bash(推奨ウインドウサイズ Columns:80 x Rows:20)
:::## 実
node.jsのDocker環境を作成する
### はじめに
こんにちは,Mottyです。今回はnode.jsのDocker環境を作っていく手順を説明します。
### Dockerで環境構築するためのモチベーション
Dockerではコンテナ内にNode.jsと依存ライブラリがすべて閉じ込められているので、どの環境でも一貫して動する。開発者のローカル環境に依存せず、すべての依存関係が同一バージョンで実行されるため、”It works on my machine”問題を防ぐことができる、とのこと。
### 構築方法
WSL上のどこかのプロジェクトのルートディレクトリに以下2つを作成
・Dockerfile
・package.json### Dockerfileの構築方法
“`Dockerfile
# ベースイメージとしてNode.jsの公式イメージを使用
FROM node:16# 作業ディレクトリを設定
WORKDIR /usr/src/app# package.jsonをコピーして依存関係をインストール
COPY package*.json ./
RUN npm install#コンテナを終了させな
「現代魔術JS×Web設計」のイメージと概念〜ビルド編〜
# はじめに
半年前ぐらい前にアニメ「葬送のフリーレン」を見て、この際にふとエンジニアとして見過ごせない概念がありました。
**「魔術はイメージの世界」**
私はジュニアプログラマーながら激しく同意したのを覚えてます。
Web設計はどんどん肥大化と複雑化していくもので、それに抗うための技術が発生するなどして…中々イメージが捉えづらいと思います。
本記事はそんな捉えづらい概念をご紹介していければと思います。:::note info
初投稿のジュニアプログラマーです。
ご指摘がありましたら、ビシバシお願いします。
:::# Node.js
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3690326/dac32338-d511-13dd-dd55-901cd23ca070.png)
Node.jsとは…単にGoogle Chromeをサーバーサイドで動かしてしまおうという技術です。
今までJavaScriptはブラウザサイドで動くものとして扱ってきました。
しか
ガチ初学者の落書き ノード
多分いろいろ間違っている覚書です。
# ターミナルよく使うコマンド
ls:ディレクトリ一覧表示
pwd:今いるパス表示
cd:ディレクトリ移動
mkdir:ディレクトリの作成
touch:ファイルの作成# Nodeのターミナル操作
jsファイルの結果の出力: node jsファイル名## npm
– npm:パッケージ(他の人が作った便利ツール)が使えるようになるもの
– ノードモジュール:パッケージをインストールしたときにそのパッケージと、依存関係のあるパッケージを格納するディレクトリ
– package.json:自分のプロジェクトでインストールしたパッケージ情報などが記載されたjsonファイル
– package-lock.json:インストールしたパッケージの情報が記載されたjsonファイル“npm init“:プロジェクト初期化。package.jsonとjsファイルが作成される。
“npm install パッケージ“:ノードモジュールにパッケージがインストールされる。package-lock.jsonも。
“npm install“:packag
Web Application開発者向けロードマップ
# 開発者ロードマップ
以下をベースにウェブアプリケーション開発者として
プロダクトリリースに必要な習得しておきたい知識や技術– [GitHub](https://github.co.jp/)
– [TypeScript](https://www.typescriptlang.org/)
– [React](https://legacy.reactjs.org/)
– [Node.js](https://nodejs.jp/)
– [AWS](https://aws.amazon.com/jp/)言語をTypeScript統一することでFE、BE、DB間での型を一貫できる構成となり、
継続的に安定したWebシステム開発ができるのと枯れた技術になりつつある(情報が豊富)なため、
不変な概念も多く、早々にパラダイムシフトが起きないと考えているため。## プロダクトリリース棲み分け
プロトタイプ、MVP、プラットフォームの順
– FEだけ無料Github Pages:[viteでReact×TypeScript環境を爆速で作る最小版](https://qiita.com/t
サーバーをまたいでPHPからnode.jsを動かすサンプルコード
## 備忘録メモとして
レンタルサーバーに設置したフロントエンドから、別サーバー(VSP)に置いてあるNode.jsを動かしてデータを返すサンプルコードテスト環境:XAMPP
### ファイル構成
“`
サーバー1(レンタルサーバー)
C:\xampp\htdocs\test1
call_run_node.php
index.phpサーバー2(VPSサーバー)
C:\xampp\htdocs\test2
run_node.php
script.js
“`
サンプルでは特に外部モジュールを使用していませんが、必要なモジュールがあればサーバー2側にインストールします。## サーバー1
index.php:フロントエンド表示部分と実行ボタン
“`php
サーバー2のNod
【Node.js】カスタムエラークラスを書く
エラークラスを独自に実装したい場合, 次のように記載する.
“`js
class NotFoundError extends Error {
constructor(message) {
super(message);
this.name = ‘NotFoundError’;
this.status = 404;
}
}
“`これをテストしてみよう. 上記コードで test.js というファイルを作成し, 最後に以下を記述する.
“`js
// ここに上記エラークラスを記載throw new NotFoundError(‘カスタムエラークラスが呼び出されました’);
“`実行する.
“`bash
$ node test.js
/home/oizumi/next-blog-app-backend/test.js:9
throw new NotFoundError(‘カスタムエラークラスが呼び出されました’);
^NotFoundError: カスタムエラークラスが呼び出されました
…スタックトレースは省略…
axious エラーハンドリングについて考える
今回対象となるコード
“`typescript
const handleSubmit = async(event : React.FormEvent) => {
event.preventDefault();
setFieldErrors({});
try {
const response = await axios.post(‘http://localhost:4000/signUp’, formData);
console.log(“this is response of form” , response);
console.log(“response is received”);
setFormData({
username : “”,
password : “”,
retypePassword : “”
});
} catch (error) {
//ここのエラーハンドリングについて考える。
//またフ
VSCode の dev-container を使って、React + TypeScript の開発環境を構築する方法
## はじめに
一緒に働いている方から「VSCode の dev-container を使えば、ローカル環境を汚さずに特定の開発環境だけ作れるよ」と聞いたので、実際に環境構築を行なった手順をまとめました。
今回は、Node.js をベースに React + TypeScript の開発環境を構築しました。
## 事前準備
dev-container は docker 用いて使用する必要があるため、docker のインストールを行なっておいてください。(今回は割愛します。)
—
## 手順 1: プロジェクトの作成
まず、Vite を使って新しい React プロジェクトを作成します。
1. **Vite のプロジェクト作成**
“`bash
npm create vite@latest my-react-app — –template react
“`– `my-react-app` はプロジェクト名です。
※ **TypeScript を使いたい場合**
TypeScript を使用する場合は、テンプレートを `react
【個人開発】ChatGPTのプロンプト投稿アプリを作ってみた【React,Express.js,Node.js,MongoDB,Vercel,GitHub】
転職活動のためにポートフォリオを作成しました。
ご覧いただけると幸いです。
ユーザー登録、投稿等自由にしていただいて大丈夫です。
フィードバックいただけると幸いです。スクールを使わずに、すべて個人で作成しました。
MERNスタック(MongoDB、Express.js、React、Node.js)でアプリを制作しております。## アプリ紹介
サイトはこちら
https://menlo.vercel.app/※自由に書き込みや登録いただいて大丈夫です。
※ポートフォリオの役割があるため、場合によっては投稿を削除する可能性がございます。予めご了承ください。Githubはこちら
https://github.com/yusukesugahara/menlo## サービス概要
ChatGPTについて、プロンプトに関する記事を投稿し共有するアプリです。ChatGPTをさらに有効活用できるようにノウハウや知識を学び共有する場として作成しました。## 開発背景
### 1、自身がプロンプトに関する情報をもっと知りたかったため
私自身、ChatGPTを活用してアプリ制作の学習を
MERNスタックアプリをVercelにデプロイしてみた
こんにちは
エンジニア転職のために、MERNスタックアプリを作りデプロイしました。
いろいろ考えた結果Vercelにデプロイしました。失敗したことも含めて皆様に共有させえていただきます。
今ポートフォリオを作って、無料でデプロイしようと考えていらっしゃる方には特に参考になるかと思います。## Vercelにデプロイしようと思った理由
結論、無料だったからです。
昔は、AWSのFC2やHerokuという選択があり、それらにデプロイをしていました。
しかし、AWSの無料枠は使い切っているようで、、、さらにいつのまにかHerokuは有料化になってしまい、、、、Next.jsをお使いの方はよくご存じのVercelにデプロイしようということになりました。
※Vercelの前にRailwayというサービスも使いましたがデプロイがうまく行かず、、、Vercelにしました。Vercelは↓こちら
https://vercel.com/
## Vercelへのデプロイのやり方
MERNスタックのブルスタックアプリのフォルダ構成は下記です。
frontend
└フロントエンドのフ
ngrokのインストールと使い方
# ngrokのインストールと使い方
ngrokは、ローカルで動作しているWebサーバーをインターネットに簡単に公開するためのツールです。これを使うと、例えば開発中のAPIを他の開発者やテスターにすぐにシェアすることができます。今回は、ngrokのインストールから、ローカルサーバーを公開し、最後にngrokを切断するまでを詳しく説明します。
## 1. ngrokとは?
**ngrok**は、ローカルで動いているアプリケーションやサーバーを外部のネットワーク(インターネット)上に一時的に公開できるツールです。開発中のAPIやWebアプリケーションを外部からテストしたり、クライアントに見せたりする際にとても役立ちます。セキュリティも担保され、アクセスのログを簡単に確認することもできます。
—
## 2. インストール手順
### Windowsの場合
1. **ngrok公式サイト**([ngrok.com](https://ngrok.com)) にアクセスし、Windows用のバイナリをダウンロードします。
2. ダウンロードしたZIPファイルを解凍し、`ngro
Node.js 14.17 開発環境を 2 分でデプロイ
[ServBay](www.servbay.com) は、複数の開発言語とデータベースをサポートする強力な開発環境管理ツールです。 ServBay を使用して [Node.js 14.17](www.servbay.com) をインストールおよびデプロイする詳細な手順は次のとおりです。
## 前提条件
ServBay のインストール: システムに ServBay がインストールされていることを確認してください。 ServBay の公式 Web サイトからダウンロードしてインストールできます。
ネットワーク接続: 必要なコンポーネントをダウンロードするために、デバイスがインターネットに接続できることを確認してください。
### ステップ 1: 管理インターフェイスをダウンロードする
ServBay を初めて使用する場合は、次の図に示すように、ダウンロード プロセス中に、インストールする Node.js 14.x バージョンを直接選択できます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/
axiosの使い方の初歩的なミス
こんにちは。
`Node.js`を学習している際に、フロント側からバックエンド側に通信しようとした際につまずきました。
もう少し詳しく書くと、フロント側で`axios`を使ってバックエンド側APIにアクセスし、APIの中で`res.redirect()`によって画面遷移するのに失敗しました。ファイル構成は下記のようになっています。
![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3532036/d4b3a64a-8ae5-4901-4483-9b790d8bf25d.png)それぞれのファイルの中身は下記のようになっています。
“`javascript:index.js
const express = require(‘express’)
const path = require(‘path’)const app = express()
app.set(‘views’, path.join(__dirname, ‘views’))
app.set(‘view engin
WSL上のnpmコマンドがある日突然見つからなくなった件
WSL上のUbuntu24.04LTSにNode.jsをインストールして使っていたnpmコマンドが、ある日突然実行できなくなりました。
fnmを使ってインストールしたものなのですが、シェル起動時のランコマンドにパスを追加する処理があり、その中でエラーが起きていました。
“`sh:.bashrc
# fnm
FNM_PATH=”/home/kr/.local/share/fnm”
if [ -d “$FNM_PATH” ]; then
export PATH=”$FNM_PATH:$PATH”
eval “`fnm env`”
fi
“`
“`
error: Can’t create the symlink for multishells at “/run/user/1002/fnm_multishells/11058_1726029612715”. Maybe there are some issues with permissions for the directory? Permission denied (os error 13)
“`上記のエラーが原因で
Git何もわからん。ReactのフォルダをPushさせてくれ。
## GithubにローカルフォルダをPushをしたい
GithubにPushすれば、何かいいことがあるらしい。
今回はローカルで作成していたReactアプリのフォルダをPushした。## 手順
ブランチを移動・なければ作成する。
“`
git checkout ブランチ名#ブランチの作成されてない場合は以下。
git checkout -b ブランチ名
“`ローカルフォルダの準備
すでに作成したReactプロジェクトのフォルダに移動します。
“`
cd フォルダ名
“`
Gitリポジトリを初期化します。
“`
git init
“`
GitHubで作成したリポジトリをローカルリポジトリに紐づけます。
“`
git remote add origin https://github.com/あなたのユーザー名/リポジトリ名.git
“`
ReactプロジェクトをGitHubにpushする
すべてのファイルをステージングエリアに追加します。
“`
git add .
“`
ファイルをコミット(保存)します。
“`
git commit -m “初め