2012-12-09 20 views
48

W moim index.ejs mam ten kod:Express i EJS <% = renderować json

var current_user = <%= user %> 

W moim węzła mam

app.get("/", function(req, res){ 
    res.locals.user = req.user 
    res.render("index") 
}) 

Jednak na stronie I uzyskania

var current_user = [object Object] 

i jeśli piszę

var current_user = <%= JSON.stringify(user) %> 

I otrzymujemy:

var current_user = {&quot;__v&quot;:0,&quot;_id&quot;:&quot;50bc01938f164ee80b000001&quot;,&quot;agents&quot;:... 

Czy istnieje sposób przekazać JSON, które będą czytelneJS?

Odpowiedz

140

To było łatwe, nie używaj <%=, zamiast tego użyj <%-. Na przykład:

<%- JSON.stringify(user) %> 

Pierwszy odda w HTML, drugi będzie świadczyć zmiennych (ponieważ są one, eval)

+2

DZIĘKUJEMY !!! Utknąłem na tym lol –

+22

Prawidłowa odpowiedź, ale tylko do precyzyjnego, to <% - JSON.stringify (użytkownik)%>, który renderuje magię. –

+0

Czy funkcja eval jest rzeczywiście używana, czy też sugerujesz, że wyniki są podobne, jak w przypadku wywołania eval. Jestem ciekawy, ponieważ jak wszyscy wiemy, eval jest ... – NicholasFolk

Powiązane problemy