Node.jsとは?
JavaScriptを使って、サーバーやパソコンの裏側で処理を行えるようにする仕組みです。 接客係のJavaScriptを裏方として使えるため、お客さんが見ている表側ではなく、見えないところで働く「調理係」として活躍します。WEB界のキッチンカー
接客と調理をミニマムなスペースで行えるキッチンカー。
レストランなどの物件を探すより、移動できる車で調理販売できるキッチンカーのように、小規模なWEBサイトでも複雑なことを手軽に導入できます。
レストランのように大規模な設備は不要
最小限の環境で動かせる。サーバーを立ち上げるのもシンプルで、すぐに「販売開始」できる。接客と調理を一体化
フロント(接客)とバックエンド(調理)を同じ JavaScript で扱える。ユーザーとのやり取りからデータ処理まで、ワンストップで完結。クラウドやローカル、どこでも動かせる
必要に応じて場所を変えられるのは、まさにキッチンカーの強み。規模は関係なし
規模が小さいサイトでも、リアルタイム通信や API 提供など「本格的な料理」を提供できる。
ローカルPCでの利用ポイント
インストールできる
Node.js公式サイトからダウンロードして、Windows・Mac・Linuxで導入できます。コマンドラインで動かせる
インストール後はnode ファイル名.jsと入力するだけで実行できます。サーバーも立てられる
ローカルPC上で簡単なWebサーバーを立てて、ブラウザからアクセスできます。学習や試作に最適
本番環境に移す前に、ローカルでコードを試したりサンプルを動かせます。
How to ローカル導入
公式サイトからダウンロード
公式サイトから最新版を入手します。Node.js公式サイト (https://nodejs.org/)インストール
セットアップすると「node」と「npm」が使えるようになります。バージョン確認
ターミナルでnode -vを入力すると、インストール確認ができます。Hello World
テキストエディターでconsole.log("Hello World");と書いてhello.jsというファイル名で保存し、 コマンドラインでnode hello.jsと入力したら実行してみましょう。
Node.jsでできることの例
ここでは「Hello World」を返すだけのサーバーを作ってみます。とても短いコードで、Node.jsの基本がわかります。
// Node.jsでサーバーを作るサンプル
const http = require('http');
// サーバーを作成
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World');
});
// ポート3000で待ち受け
server.listen(3000, () => {
console.log('http://localhost:3000 で動いています');
});
require('http')
→ サーバーを作るための部品を呼び出します。createServer
→ サーバーを作り、「リクエストが来たらどう返すか」を決めます。res.end('Hello World')
→ 画面に「Hello World」と返します。listen(3000)
→ ポート3000で待ち受けます。ブラウザでhttp://localhost:3000にアクセスすると見られます。
Node.jsで入力を受け取って返すサンプル
ここでは、URLに入力した文字を受け取り、そのまま返すサーバーを作ります。
// Node.jsで入力を受け取って返すサンプル
const http = require('http');
const url = require('url');
// サーバーを作成
const server = http.createServer((req, res) => {
const queryObject = url.parse(req.url, true).query;
const message = queryObject.text || '入力がありません';
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('あなたの入力: ' + message);
});
// ポート3000で待ち受け
server.listen(3000, () => {
console.log('http://localhost:3000?text=こんにちは で試せます');
});
url.parse(req.url, true)
→ アクセスされたURLを分解して、入力(クエリ)を取り出します。queryObject.text
→ URLの?text=〇〇の部分を受け取ります。res.end('あなたの入力: ' + message)
→ 受け取った文字をそのまま返します。