В настоящее время я реализую аутентификацию для веб-приложения в Node.js с использованием модуля паспорта. Я возвращаю объект пользователя к пользователю при рендеринге индексной страницыВложение объекта пользователя с помощью ejs
app.route('/').get(function(req, res) {
res.render('index', {
isAuthenticated: req.isAuthenticated(),
user: req.user //User Object provided by passport
});
});
и я пытаюсь встроить пользовательский объект в DOM с использованием EJS:
<!--Embedding The User Object-->
<script type="text/javascript">
var user = <%= user%>;
</script>
, но есть некоторые вопросы кодирования , Это выход, когда я просмотреть исходный код в браузере:
<!--Embedding The User Object-->
<script type="text/javascript">
var user = { email: '[email protected]',
roles: [ 'user' ],
created: Thu Feb 04 2016 19:13:16 GMT+1100 (AEDT),
__v: 0,
_id: 56b3081cb406f8156cd3798a };
</script>
Я следую пример, который использует глотнул, в котором они обрабатывают кодирование следующим образом:
<!--Embedding The User Object-->
<script type="text/javascript">
var user = {{ user | json | safe }};
</script>
Я не слишком знакомый с swig, поэтому я предполагаю, что это своего рода конвейерная обработка. Мне было интересно, как я буду делать это с помощью ejs?
Возможно, вы ищете '<% - JSON.stringify (user)%>', хотя для получения того же результата, что и вы, вы опубликовали. – azz
Да еще лучше! Это фиксированный синтаксический анализ объекта даты – slim1801