著者:しょっさん
インターネットを介する各種サービス、ゲーム、そしてコミュニケーションツールなどの多くが「Webアプリ」として提供されています。このようにWebアプリが普及したのは、プログラミング言語「JavaScript」のおかげです。JavaScriptはフロントエンド開発が中心でしたが、サーバーサイドの実行環境「Node.js」の登場によりバンクエンドのアプリ開発にも使われています。本特集ではNode.js、フレームワークとなる「Express」について、実践しながら分かりやすく紹介します。
記事本文掲載のシェルスクリプトマガジンvol.54は以下のリンク先でご購入できます。
1 2 3 4 5 6 7 |
const http = require('http'); http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World!'); }).listen(5000); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
const http = require('http'); const url = require('url'); const port = 5000; const server = http.createServer(); server.on('request', function (req, res) { const uri = url.parse(req.url, true).pathname; const query = url.parse(req.url, true).query; let status = 200; let message = ''; // URIごとに表示するメッセージを変える switch (uri) { case '/': message = 'Hello World!'; break; case '/about': message = 'About page'; break; case '/query': message = 'query: ' + query.name; break; default: status = 404; message = 'Page not found.'; } // http ステータスコードや、実際のメッセージ表示はここ res.writeHead(status, { 'Content-Type': 'text/plain' }); res.write(message); res.end(); }); server.listen(port); |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Express の利用宣言 const express = require('express'); const app = express(); const port = 5000; // URIごとの表示メッセージを定義 app.get('/', (req, res) => res.send('Hello World!')); app.get('/about', (req, res) => res.send('About Page')); app.get('/query', (req, res) => res.send('query: ' + req.query.name)); // 指定したポートでサーバーへの受付を開始 app.listen(port); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// Expressの利用宣言 const express = require('express'); const app = express(); // URIごとの表示メッセージを定義 app.get('/', (req, res) => res.send('Hello World!')); app.get('/about', (req, res) => res.send('About Page')); app.get('/query', (req, res) => res.send('query: ' + req.query.name)); // 404 not found 1app.use((req, res) => res.status(404).send("Page not found")); // 指定したポートでサーバーへの受付を開始 app.listen(process.env.PORT); // 環境変数 PORTを見るように変更 |