具有angularjs的NODE和CMS:它们如何合作

时间:2014-05-05 14:59:40

标签: javascript node.js angularjs content-management-system

我正在考虑用MEAN堆栈制作东西。我需要一种方法来编辑网站的内容,例如Wordpress提供(基本上是CMS)。

令人困惑的是CMS和Angular如何协同工作。我查看了名为Keystone的CMS,您必须在Node中设置一些路由等。您在Angluar中设置的路由会不会导致此崩溃?

在我使用的其他CMS中,视图的创建发生在服务器端。在Angular中,据我所知,您创建了一个HTML模板,您可以在角度控制器中填充数据。这似乎也可能在CMS和Angular之间崩溃。是这种情况吗?

我应该知道Angular和内容管理系统是否有任何其他怪癖或类似问题,或者将两者整合在一起通常没什么问题?

6 个答案:

答案 0 :(得分:7)

meanjs.org对此有一个非常好的方法。安装meanjs。它附带一个sigin /注册,甚至允许您从vanilla安装创建文章。

简单地说,当您使用MEAN堆栈创建Web应用程序时,请将AngularJS视为" THE" app和node.js作为api。 如果您将Web应用程序构建为javascript应用程序(AngularJS),这恰好从服务器api(node.js)获取数据,那么您将开始了解如何正确使用MEAN堆栈。

首先:Angular将在$routeProvider中定义路线。首先在AngularJS中构建路由URL。他们是" THE"您的网络应用程序的路线。查看它的一个好方法是构建AngularJS部分,以便能够在必要时更改api服务器,甚至更改为另一种语言(PHP,python,go等)。

第二步:构建你的AngularJS,通过$resource与api进行通信。基本上$资源是使用restful路由调用api的简单方法。这个"宁静的路由"现在是需要"模仿/复制的路由"进入node.js路由的路由。

AngularJS路由(url)通常会匹配与node.js路由匹配的$ resource路由。

再次,看看meanjs.org,您将更好地了解如何正确组织"似乎" (实际上是)两个独立的应用程序。

答案 1 :(得分:3)

基本上,你需要三套路线(如果你便宜的话,你需要两套路线)。

从服务器上的一组路由开始,返回常规网页。忘了JavaScript。在这个阶段不要涉及Angular。

其次,在服务器上添加另一组路由,以粗体形式(例如JSON)返回数据。这通常是一个RESTful API。

第三,将Angular添加到客户端。当需要更新视图时,更新浏览器中的URL并使用Ajax命中RESTful API以获取填充它所需的数据。 (您希望将地址栏设置为的URL与您使用JS复制的第一组路由中的页面URL和RESTful路由中的数据相匹配。)

如果您以便宜的价格like Gawker did进行,那么您将跳过第一组路线并直接进入JS + REST方法。

答案 2 :(得分:3)

我创建了一个AngularJS + KeystoneJS Skeleton启动应用程序,如果您想将MEAN与KeystoneJS一起使用,应该可以帮助您入门:

https://github.com/dvdcastro/keystonejs-ng-skeleton

答案 3 :(得分:1)

我认为你需要在MEAN堆栈开发环境中使用CMS。 你可以尝试在平均堆栈上有一些cms。

  1. PancilBlue
  2. Calipso的
  3. 试试这个。

答案 4 :(得分:1)

我们一直致力于使用angular和keystonejs的项目。只需提供keystone中的默认模板布局,并在body标签中注入data-ng-view标签。为'/'。

的所有请求提供此模板

然后正常编写角度应用以消耗端点。这些端点可以使用api中间件在keystone中完成。在routes/index.js文件中,使用自定义端点的名称在routes对象中添加键/值对,然后导入包含端点函数定义的文件夹。

var routes = { views: importRoutes('./views'), api: importRoutes('./api') };

exports = module.exports = function(app) {
app.get('/api/posts', keystone.middleware.api, routes.api.post.index);}

答案 5 :(得分:0)

我最近将我的博客迁移到MEANie - 我开发的轻量级自定义MEAN Stack CMS。

我为所有人提供了开源信息,并在http://jasonwatmore.com/meanie我的博客上发布了详细信息和设置说明。