2017-05-31 50 views
0

我有一個局部視圖用於服務器端渲染來構建一個HTML頁面,並且還在FrontEnd中對UI進行部分更新。因爲我想在服務器端和FrontEnd上使用相同的部分視圖文件,所以我一直在尋找在雙方之間共享這個文件的最佳方法。如何在FrontEnd中使用相同的視圖並表達服務器端渲染?

現在,TBMK我用下面的方法:

  • 放置在那些被快速靜態中間件供應/public文件夾中的局部視圖文件。
  • 服務器應用程序從文件系統加載部分視圖。
  • FrontEnd通過AJAX HTTP請求加載部分。

有沒有更好的方法?

回答

1

我有類似的問題。我的解決方案是爲ajax請求提供特定的路由(可能甚至在特殊的控制器中,用於分離關注點)。

控制器正在從視圖目錄提供文件。

如果您想提供例如從應用程序/ viewsDir/partialsDir目錄中的文件你會使用URL,如:

http://myhost.com/partials/my-partial

然後控制器可以等回答:

router.get('/partials/:partialName', function(req, res, next) { 
    res.sendfile(`viewsDir/partialsDir/${req.params.partialName}`, 
    {root: __dirname }); 
}); 

這樣,你甚至可以有一個文件由句柄或任何其他服務器模板引擎進行預處理。

我這樣做,因爲我不想在公共目錄中有任何模板。