与ExpressJS集成的AngularJS和Node.js

我正在尝试用Express和Angularjs编写Node.js的应用程序。

我可以允许AngularJS处理所有的登陆请求吗? 而Node.js纯粹是针对API的? 这意味着用Node.js编写的所有路由将如下所示:

app.get('/api/users', users.showAll); app.post('/api/users', users.create); app.get('/api/users/fb/:fbId', users.findByFb); app.get('/api/users/:userId', users.show); app.put('/api/users/:userId', users.update); app.del('/api/users/:userId', users.del); 

和AngularJS将能够解决自己的url,例如localhost / users / Some-Name?

将两者结合在一起时要遵循哪些最佳实践?

同样,build议将AngularJS和Node.js应用程序分成两个不同的应用程序? 有什么办法可以做到这一点?

提前致谢!!

显然,任何应用程序的devise和细微差别都会决定它应该如何设置,但是你当然可以在Angular中运行一个单独的页面Web应用程序,使AJAX请求返回到你的node.js服务器端API。 我以这种方式创build了许多中小型应用程序。

Node.js可以按照您devise的方式处理您的API,但是您需要一些初始path,用户最初会打开HTML页面来引导angular.js应用程序,并加载任何额外的javascript和css库你会需要。 您将定义该路线,然后在节点应用程序中设置静态资源,以便浏览器可以加载这些东西来启动angular度应用程序。

angular度应用程序本身将包含在您的快速应用程序中的静态资源文件夹中的JavaScript文件中。 通常情况下,像/js/myNgApp.js这样的东西可以开始工作 – 但是通过将控制器,指令,服务等分离到他们自己的js文件中,您可以获得更多的异域风情。 这是你以后可以做的事情。

一旦angular应用程序加载并运行在浏览器中,您将只需要在angular度使用$资源服务来定义您的ajaxurl在节点的API,然后有angular度的客户端执行获取或张贴(或任何)请求这些url。

如果安全性是您在应用程序中所需要的,那么在加载angular度应用程序之前,需要将其作为页面和url来实现。 有明确的安全框架可以帮助你。 我用护照 。

在Chrome中,开发者工具(尤其是networking标签)将成为您最好的朋友。