2016-02-04 4 views
1

В настоящее время я реализую аутентификацию для веб-приложения в 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: &#39;[email protected]&#39;, 
    roles: [ &#39;user&#39; ], 
    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?

ответ

0

ПОСТАНОВИЛИ! EJS имеет функцию HTML ускользающей, которая так просто, как

<%- user %> 

вместо

<%= user %> 
+0

Возможно, вы ищете '<% - JSON.stringify (user)%>', хотя для получения того же результата, что и вы, вы опубликовали. – azz

+0

Да еще лучше! Это фиксированный синтаксический анализ объекта даты – slim1801

1

В Swig,{{ user | json | safe }} означает:

вернуть мне строковое представление этого объекта JavaScript user и возврата мне эта строка заставляет ее не автоматически сбежать.

В Джейд,

!{JSON.stringify(user)} неэкранированный

#{JSON.stringify(user)} спасся

В EJs,

<%- JSON.stringify(user) %> неэкранированный

<%= JSON.stringify(user) %> escaped

Смежные вопросы