2012-01-19 66 views
1

我嘗試運行https://github.com/flatiron/director#client-side示例以熟悉director.js。我不能在客戶端設置熨斗模組。如何運行nodejs flatiron/director示例

在我的HTML頁面(比如,<my_project>/page.html)我取代的director.js位置與 從我的項目其對應的位置:

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

當在瀏覽器中加載<my_project>/page.html頁面 我錯誤:導出和路由器未定義。

第一個想法:畢竟,在瀏覽器端有沒有...的NodeJS

好吧,我認爲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的新手,我不確定它是否會讓我感覺到我在上面描述的情況下做了什麼... 是否有人如何解決它?或者一般來說,如何在瀏覽器端使用'同構'東西? Github上的html示例只是指與服務器端示例相同的.js文件 ...

您能推薦任何教程,示例嗎?

感謝, -gvlax

回答

2

你可以找到directorhere擁有的全部剝離服務器代碼的特定瀏覽器的版本。

+0

該鏈接現在返回404 ... – danwoods

+1

更新了鏈接。 – fent

2

感謝DeadDEnD,

現在,它就像一個魅力!

我不知道我怎麼能錯過了在自述信息...我閱讀手冊第一,我發誓:-)

這裏是我的示例代碼:

<!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