サーバー/クライアント側のレンダリングhtmlにejsとriot.jsを使用するWebアプリケーションを開発しています。私が聞きたいのは、サーバーから ejs を介して riot.js にデータをレンダリングすることです。この質問のために、ユーザーの情報を html にレンダリングする例を用意しました。
実際、データを html に渡すことはできましたが、ejs の JavaScript を介して情報をレンダリングする方法に自信がありませんでした。何か良い方法があればご教授ください。
server.js (エクスプレス)
router.get('/login', function(req, res) {
var user = {};
if(req.user) {
user.email = req.user.local.email;
};
res.render('login', { user: user })
});
index.ejs
riot のカスタムタグに ejs で渡します。これは良いマナーですか?
<html>
<body>
<navbar></navbar>
<script>
riot.mount('navbar', { user: <%- JSON.stringify(user) %> });
</script>
</body>
</html>
navbar.tag
<navbar>
<div>user's email: { user.email} </div>
<script>
this.user = opts.user
</script>
</navbar>
環境
- node.js v5.3.0
- 暴動.js v2.3.12