秀和システム刊 Node.js 超入門 第二版
https://www.shuwasystem.co.jp/book/9784798055220.html
ページ142
を参考にコーディングしていて、ejs.renderのfilenameについて疑問があり質問します。
下記3つのコードは「data_item.ejsをテンプレートとして使用する index.ejsをレンダリングする」という内容です。
コード1.app.js(主要部のみ抜粋)
const index_page = fs.readFileSync('./index.ejs', 'utf-8'); var msg = `これはIndexページです` var content = ejs.render(index_page, { title: "Index", content: msg, data: data, filename: 'data_item' //☆☆☆☆ }); res.writeHead(200, { 'Content-Type': 'text/html' }); res.write(content); res.end();
コード2.index.ejs(主要部のみ抜粋)
<table> <% for(var key in data) { %> <%- include('data_item', {key: key, val:[data[key]]}) %> <% } %> </table></p>
コード3.data_item.ejs
<tr> <th><%= key %></th> <td><%= val[0] %></td> </tr>
疑問
本の説明では、ejs.renderのfilename には、テンプレートのパーツ名('data_file')を指定すること、
とありましたが、'data_file'と指定せず、'hoge'や'fuga'など、テンプレートファイルとは無関係の内容を指定しても
レンダリングは支障なく行われました。
filenameの行そのものを削除するとエラーとなります。
この動作をみて、ejs.renderのfilenameに指定する値は何らかの文字列であれば何でも構わないものなのか、などと思いましたが、
本当にそうなのでしょうか?
それとも、何らかの設定(例えばグローバル設定のようなもので何でもよいようなことが知らぬ間になされている、など)によって、'hoge','fuga'でも支障なく動作したのでしょうか?
ejs.renderについて検索しても、node.jsにおけるfilenameの説明が見つからず質問させていただきました。
よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。