2011-01-04 4 views
1

Я использую couchdb как скачано с http://couch.io/get на Mac OS X 10.6, и он не обрабатывает Date s правильно. Например, следующий вид (карты) дает излучает {} для дат объектов:CouchDB javascript версия: Дата выпуска

function(doc) { 
    emit(new Date(), null); 
} 

То же самое справедливо и для вариаций на дату: Date("2000-10-10"), Date("2000/10/10") и Date("10/10/2000") все производят {}.

Я предполагаю, что это связано с моей версией javascript, так как Date работает так, как я ожидал на своей машине Linux. Тем не менее, когда я запускаю js из командной строки, у него совершенно другое поведение для Date s. Если это проблема с версией, то как я могу узнать, какая версия javascript CouchDB запущена, как я могу ее изменить и какую версию я должен запускать?

ответ

2

Я предполагаю, что почему-то toString() не вызывается, поэтому он получает {} в качестве общего представления объекта javascript.

Не уверен в результате вы ожидали, но вы можете использовать один из них:

emit((new Date()).toString(), null); // Tue Jan 04 2011 13:24:48 GMT-0600 (CST) 

emit((new Date()).getTime(), null); // 1294169100617 
+0

Спасибо, что именно этот вопрос. Если я звоню (новая дата («2010/01/04»)). ToString() (с косой чертой вместо дефиса), то она работает правильно. Вы знаете, как изменить, какая версия js couch использует, и какая самая лучшая/самая современная/стандартная версия? –

+0

@ Danny: Извините, но я не знаю, что это за версия. Я даже не знаю, какой интерпретатор они используют. Я был бы удивлен, если бы было легко менять версии. Однако у меня ограниченный опыт работы с CouchDB, и я только кратко запустил CouchDBX, чтобы убедиться, что это решение работает. – user113716