Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2011, 08:48
Аспирант
Отправить личное сообщение для RUVATA Посмотреть профиль Найти все сообщения от RUVATA
 
Регистрация: 08.02.2011
Сообщений: 41

Node.js | Обращение к именовнному полю объекта в назв.которого есть дефис "-"
Всем доброго времени суток...

Речь идет об объекте http.request.headers (read-only) в составе встроенных модулей node.js - содержит заголовки принятого запроса.

sys.inspect любезно предоставляет возможность изучить его структуру:

sys.inspect(req.headers):
{ accept: '*/*',
'content-type': 'multipart/form-data; boundary=xXxXXxxxX',
'user-agent': 'Msxml2.XMLHTTP.6.0',
'accept-language': 'ru',
'accept-encoding': 'gzip, deflate',
host: 'localhost:8000',
'content-length': '65024',
connection: 'Keep-Alive',
'cache-control': 'no-cache' }

Нехитрый код в теле анонимной функции обработчика request.on('data') позволяет таки перечислить имена этих полей :
Код:
for(var name in req.headers) names += name + "\n";
sys.puts(names);
вот что у нас получается:

listing param.names in req.headers object:
accept
content-type
user-agent
accept-language
accept-encoding
host
content-length
connection
cache-control

А теперь внимание вопрос !
Как в коде обращаться к тем параметрам в именах которых содержится символ фефис "-",
т.е.
я свободно могу обратиться к
Код:
req.headers.connection
и в данном случае получу строку 'Keep-Alive'
Но обратиться к полю content-type
Код:
req.headers.content-type
Не получается... интерпритатор выкидывает исключение
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2011, 09:09
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

obj['na-na']
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2011, 09:24
Аспирант
Отправить личное сообщение для RUVATA Посмотреть профиль Найти все сообщения от RUVATA
 
Регистрация: 08.02.2011
Сообщений: 41

Спасибо...

PS:
В развернутом виде

Синтаксис обращения к именнованным параметрам объектов содержащим символы синонимирующие операторам языка

выглядит так:

Объект[ имя параметра или переменная содержащая это имя в виде строки]

т.е. в нашем случае верное обращение к 'content-type' объекта request.headers выглядит так :

req.headers['content-type']

Последний раз редактировалось RUVATA, 02.06.2011 в 09:35.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача полю объекта - массиву, значения элемента через set метод poorking Общие вопросы Javascript 1 13.02.2011 20:22
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37