2013-03-07 3 views
0

Я использую экспресс, чтобы сделать очень простую страницу. Моя index.js выглядит следующим образом:проблема с express.index отправка объекта json

exports.index = function(req, res){ 
    res.render(
    'index', 
     { 
      title: 'Expressssss', 
      Tin: varTin, 
      Tout : varTout, 
      Hin : varHin, 
      Tout_array : { 'date': 'Thu Mar 07 2013 22:00:04 GMT+0100 (CET)', 'value': '10062' } 
     } 
    ); 
}; 

О файле index.ejs я могу использовать значение, используя, например <%= Tin %> ... Это работает очень хорошо ....

Проблема заключается в том, что data = <%= Tout_array %>; не кажется хорошо работать. Используя консоль chromes, в этой строке появляется ошибка. HTML код после синтаксического анализа выглядит следующим образом:

data = [object Object]; 

и ошибка в этой точке

Uncaught SyntaxError: Unexpected identifier 

что я делаю не так? почему синтаксический анализ любого другого variale работает довольно хорошо, но не эта вложенная структура json? Я использую это, потому что хочу отправить большой массив.

Thans

+1

бы мы могли см. файл index.ejs? – Hamms

+0

Без каких-либо других указаний JavaScript 'Object' ['toString()'] (http://es5.github.com/#x15.2.4.2) до того, что вы получили - '[object Object]'. Если вам нужно что-нибудь более полезное, вы должны быть явным в каком формате. Для JSON это 'JSON.stringify()', как уже было предложено другими. –

+0

@ JonathanLonowski благодарит за идею. Сейчас я сталкиваюсь с двумя проблемами. Во-первых, JSON.stringify возвращает строку с '' '-qhotes, которые не работают ... во-вторых, мне нужно добавить дополнительную цитату в массив,' '[{}, {}] 'instad of' [{}, {}] '.... Поэтому мне нужно преобразовать из' [{"date":}, {}] 'в' '[{\' date \ '}, {}]' '. Странно, есть ли лучший способ? – otmezger

ответ

2

Если вы пытаетесь произвести на стороне клиента JavaScript, из шаблона EJS, я думаю, что вы хотите:

data = <%- JSON.stringify(Tout_array) %>; 
+0

СПАСИБО !!! '' <% - 'сделал трюк. Кулак, я думал, что это опечатка, но это действительно изменило ситуацию. (Заметьте, это ** не ** то же самое как '<% =') – otmezger

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