4

我刚刚开始使用Angular Universal,并且全新推出'isomorphic'javascript。是否推荐客户端路由与服务器端路由一起提供angular-universal

对于如何建立一个逻辑路由系统,我有点困惑,你是否打算构建出一个典型的节点休息api角度通用?还是仅仅意味着立即提供客户端代码,并从外部来源/ rest api中检索数据?

至于以角度万能起动器套件为例,它从这些路线开始;

app.get('/', ngApp); 
app.get('/about', ngApp); 
app.get('/about/*', ngApp); 
app.get('/home', ngApp); 
app.get('/home/*', ngApp); 

是否合乎逻辑地包括一个节点/ express/mongo api以获取/发布数据?即;

const bearRoutes = require('./routes/bear') 
app.use('/', bearRoutes) 

如果是,那么您会使用散列策略来区分URLS吗?

使用通用外部api的angular2应用服务数据与将所有东西托管在一起之间会有明显的性能差异吗?

感谢您的任何建议!

回答

6

我有点困惑,如何有一个逻辑路由系统,你是否打算建立角度通用作为一个典型的节点休息API?

是的。 angular-universal采取这一理念。您在服务器端构建路由,因为所有内容都构建在服务器端。

是否合乎逻辑地包含一个节点/ express/mongo api以获取/发布数据?

是的,为您的数据服务。 例如Hello World example with github services makes API requests 对于app.use没有,因为这实质上就是您的节点REST服务器。

如果是,那么您会使用哈希策略来区分URLS吗?

首先是服务器端不会看到URL中的#之后的任何内容。但是您描述的问题是关于命名URL以及是否区分服务角度编译/呈现的HTML内容与数据/ API服务的URL。

答案是肯定的。这是为了您自己擅长管理您的服务器路由。例如,如果你的路由是

app.get('/', ngApp); 
app.get('/about', ngApp); 
app.get('/about/*', ngApp); 
app.get('/home', ngApp); 
app.get('/home/*', ngApp); 

你可以只添加

app.get('/api/profile', serverAPIAppOrprofileJSON); 

会不会有比拥有一切使用通用从外部API上angular2应用中投放数据之间存在明显的性能差异一起托管?

想想一下,由于某些用户的交互作用而导致一小部分页面发生变化,并且需要您携带一些数据。您可能只想更新本节,而不是渲染整个页面。所以在这种情况下表现会更好。

+0

好吧,我应该单独创建/托管节点REST服务器?和以前一样,当我建立类似于博客应用程序的阅读时,最好让Node REST服务器直接通过hbs/jade等服务html,然后将admin部分作为单独的SPA。在角度通用的情况下,听起来你会有节点休息服务器,角度通用服务器作为客户端使用节点休息服务器,然后你仍然可以将管理部分作为单独的SPA或甚至可以作为另一个通用设置? – confusedandenthused

+1

无论渲染发生在哪里,应用程序增长时API服务器都是独立的。 API服务可能有其他消费者,并可能有单独的部署和开发生命周期。 – bhantol

相关问题