ExpressでWebアプリケーションを自動生成する (6/6)
作成:2013-05-12 10:25
更新:2015-08-13 11:15
更新:2015-08-13 11:15
■「helo」ページを作ってみよう
では、この基本的な仕組みを使って、新しいページを作ってみましょう。今回は、/heloにアクセスして表示されるページを作成してみます。必要なものを整理しましょう。
・「routes」内のhelo.js
/heloの処理を記述するスクリプトファイルとして、「routes」フォルダ内に「helo.js」ファイルを作成します。この中で、router.getで'/'にレンダリングする処理を設定しておきました。また簡単なサンプルとして、titleとdataをテンプレートに渡して処理するようにしてあります。
・「views」内のhelo.ejs
/heloで表示するテンプレートファイルですね。ここでは、<%= title %>でtitleを出力する文と、変数data内のキーと値を<table>にまとめて出力する文を記述してあります。
・app.js
メインプログラム内では、helo = require('./routes/helo')でhelo.js内のexportsを変数heloに代入し、app.use('/helo', helo);で/heloへのアクセス処理をheloオブジェクトのheloメソッドに設定しています。
・「public」内の「stylesheets」内のstyle.css
最後に<table>のスタイルシートを追加しておきます。スタイルシートは、「public」内の「stylesheets」フォルダに保管されます。この中の「style.css」を開き、<table>のスタイルを記述しておけばよいでしょう。
――ひと通りの編集が終わったら、Node.jsでapp.jsを実行し、http://localhost:3000/heloにアクセスしてみましょう。作ったページがちゃんと表示されましたか?
・「routes」内のhelo.js
/heloの処理を記述するスクリプトファイルとして、「routes」フォルダ内に「helo.js」ファイルを作成します。この中で、router.getで'/'にレンダリングする処理を設定しておきました。また簡単なサンプルとして、titleとdataをテンプレートに渡して処理するようにしてあります。
・「views」内のhelo.ejs
/heloで表示するテンプレートファイルですね。ここでは、<%= title %>でtitleを出力する文と、変数data内のキーと値を<table>にまとめて出力する文を記述してあります。
・app.js
メインプログラム内では、helo = require('./routes/helo')でhelo.js内のexportsを変数heloに代入し、app.use('/helo', helo);で/heloへのアクセス処理をheloオブジェクトのheloメソッドに設定しています。
・「public」内の「stylesheets」内のstyle.css
最後に<table>のスタイルシートを追加しておきます。スタイルシートは、「public」内の「stylesheets」フォルダに保管されます。この中の「style.css」を開き、<table>のスタイルを記述しておけばよいでしょう。
――ひと通りの編集が終わったら、Node.jsでapp.jsを実行し、http://localhost:3000/heloにアクセスしてみましょう。作ったページがちゃんと表示されましたか?
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※「routes」内のhelo.js var express = require('express'); var router = express.Router(); /* GET helo page. */ router.get('/', function(req, res, next) { res.render('helo', { title: 'Helo', data: { '太郎':'taro@yamada', '花子':'hanako@flower', 'つやの':'syoda@tuyano.com' } }); }); module.exports = router; ※「views」内のhelo.ejs <!DOCTYPE html> <html> <head> <title><%= title %></title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> <h1><%= title %></h1> <table> <% for(var key in data){ %> <tr><td><%= key %></td> <td><%= data[key] %></td></tr> <% } %> </table> </body> </html> ※app.jsの追記する文 // 冒頭のrequire文のところに以下を追記 var helo = require('./routes/helo'); // app.use文のところに以下を追記 app.use('/helo', helo); ※「public」内の「stylesheets」内にあるstyle.cssに以下を追記 table tr td{ background-color:#eeeeff; padding: 3px; }
※関連コンテンツ