как запустить пример nodejs flatiron / Director - PullRequest
1 голос
/ 19 января 2012

Я попытался запустить пример https://github.com/flatiron/director#client-side, чтобы ознакомиться с Director.js.

Я не могу установить модуль flatiron на стороне клиента.

На своей html-странице (скажем, <my_project>/page.html) я заменил местоположение director.js на местоположение его аналога из моего проекта:

<my_project>/node_modules/flatiron/node_modules/director/lib/director.js

При загрузке страницы <my_project>/page.html в браузере я получил ошибки: экспорт и Маршрутизатор не определены.

Первая идея: В конце концов, на стороне браузера нет nodejs ...

OkЯ думал, что Browserify может помочь мне с этим.Я сгенерировал один пакет «на стороне браузера» (это было необходимо?):

my_project> node node_modules/browserify/bin/cli.js node_modules/flatiron/node_modules/director/lib director.js -o cs_director.js

, и я использовал его в строке: <script src="cs_director.js"></script>

Проблема в том, что ошибка

Uncaught ReferenceError: Router is not defined
(anonymous function)

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

Я новичок в node / js, и я не уверен, имеет ли смысл то, что я сделал в моем описанном случаевыше ... Кто-нибудь, как решить это?

Или вообще, как использовать "изоморфные" вещи на стороне браузера?Примеры HTML на Github просто ссылаются на те же файлы .js, что и примеры на стороне сервера ...

Можете ли вы порекомендовать какие-либо учебные пособия, примеры?

Спасибо, -gvlax

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Спасибо DeadDEnD,

Теперь это работает как шарм!

Понятия не имею, как я мог пропустить эту информацию в readme ... Сначала я прочитал руководство, клянусь: -)

Вот мой пример кода:

  <!html>
  <html>
    <head>
      <script src="director-1.0.7.min.js"></script>

            <script>

        var author = function () { console.log("author called.");},
            books = function () { console.log("books called."); },
            viewBook = function(bookId) { console.log("viewBook called."); };

        var routes = {
          '/author': author,
          '/books': [books, function() { console.log("anonymous fun called."); }],
          '/books/view/:bookId': viewBook
        };

        var router = Router(routes);
        router.init();

      </script>
    </head>
    <body>
        Click <a href="#/books">me</a> to call two functions at a time. 
    </body>
  </html>

- gvlax

2 голосов
/ 20 января 2012

Вы можете найти специфическую для браузера сборку director здесь , в которой удален весь код сервера.

...