Рендеринг на стороне сервера с помощью React-rails и Algolia

Я пытаюсь предварительно отрендерить серверную часть приложения для реагирования, но столкнулся с проблемой: как только я require('algoliasearch') я получаю ReferenceError: XMLHttpRequest is not defined

Я пытался использовать faux-jax для имитации XMLHttpRequest, но потом получаю TypeError: Cannot read property '0' of undefined И, в конце концов, я не не думаю, что это путь.

Любая идея по этой проблеме?


person Nima Izadi    schedule 01.06.2015    source источник


Ответы (1)


вы используете nodejs? Если да, то какая версия?

При использовании nodejs 0.12 я не могу воспроизвести вашу проблему:

> node -v
0.12.13
> npm install algoliasearch
node
> var algoliasearch = require('algoliasearch');
undefined
> algoliasearch
{ [Function: algoliasearch] version: '3.4.0', ua: 'Algolia for Node.js 3.4.0' }
person vvo    schedule 02.06.2015
comment
Хм, у меня был 0.10, но я обновился до 0.12 и все еще имею ошибку. Похоже, что ошибка связана с React-Rails или ExecJS, а не с самим узлом. Как только я удаляю require('algoliasearch') из своего приложения для реагирования, рендеринг работает... Может ли это быть связано с зависимостями algoliasearch? - person Nima Izadi; 02.06.2015
comment
Можете ли вы сделать в точности то, что сделал я, и дайте мне знать, если это сработает? - person vvo; 02.06.2015
comment
Да, я забыл упомянуть, что сделал то же, что и ты, и это сработало. - person Nima Izadi; 02.06.2015
comment
Странно то, что ни в коем случае вы не должны получать XMLHttpRequest не определено. Этот код загружается только при использовании браузера или веб-пакета. Я не знаю, что такое execJS, но да, это больше связано с execJS, чем с узлом или реакцией. - person vvo; 02.06.2015
comment
Кажется, существует несовместимость между React Rails и браузером github.com/reactjs/react-rails/ вопросы/129 - person vvo; 02.06.2015
comment
Это может быть связано с package.json модуля algolisearch, но я действительно не знаю, что происходит. Кажется, кто-то пытается загрузить src/browser/builds/algoliasearch.js серверную часть, хотя он должен просто загрузить index.js - person vvo; 02.06.2015