2015-12-08 2 views
1

У меня немного проблемы, я пытаюсь отправить объект для использования на стороне своего Javascript, когда я визуализую представление. Я посылаю это так (Im помощью рулей)Как передать объект клиенту Javascript - NodeJS & express

> locations=[ { 
    >    local:"my_local",      
    >    desc:"myDesc"     
    >    }]; 

res.render('myView', { locaciones:locaciones }); 

// Тогда на мой взгляд Внутри тега сценария я пытаюсь получить эту вар и распечатать его

<script> 
    var myObj='{{locations}}'; 
    console.log(locations); 
</script> 

результат заключается в следующем:

[object] 

и я не могу использовать любое свойство, потому что это не определено

+0

Try console.log (locations.local); – s007

+0

@ s007 результат «undefined» – Batcat

ответ

3

Вы можете отправить свой объект как строка.

Как locations = JSON.stringify({local:"my_local",desc:"myDesc"});

А на стороне клиента, вы можете разобрать его, чтобы получить объект

Как loc = JSON.parse(locations);

Теперь вы можете использовать LOC как объект.

+0

Я получаю эту ошибку, когда пытаюсь разобрать «SyntaxError: JSON.parse: ожидаемое имя свойства или«} »в строке 1 столбца 2 данных JSON« – Batcat

+0

[пример ссылки] (http://jsfiddle.net/d6c25py9/) <- Здесь вы видите –

+0

, проблема заключалась в том, что JSON.stringify изменил кавычки для & quote, поэтому я не мог разобрать его на стороне клиента. Я зафиксировал это следующим образом: loc = JSON.parse (locations.replace (/ "/g, '' ')) – Batcat

0

Я знаю, что это старый пост, но если другие ищут простой способ передать объект с сервера клиенту в nodejs, вот как я это делаю.

На сервере я сделать что-то вроде:

res.render('my_page',{'my_object': my_object}); 

Тогда на стороне клиента в моем нефритом я сделать:

-var name = my_object.name; 

(при условии, что есть «имя» недвижимость в my_object)

Тогда просто используйте его, как вам это нужно.

Как:

p Hello #{name}