具有ExpressJS集成的AngularJS和Node.js

Jer*_*ome 5 javascript node.js express

我正在尝试使用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);
Run Code Online (Sandbox Code Playgroud)

AngularJS能够自己解析URL,例如localhost/users/Some-Name?

将两者结合在一起时,要遵循哪些最佳做法?

另外,是否建议将AngularJS和Node.js应用程序分成两个不同的应用程序?有什么方法可以做到这一点?

提前致谢!!

Box*_*cks 6

显然,任何应用程序的设计和细微差别将决定它应该如何设置,但你肯定可以在Angular中运行单页Web应用程序,使AJAX请求返回到node.js服务器端API.我已经用这种方式创建了许多中小型应用程序.

Node.js可以按照您设计的方式处理您的API,但是您需要在节点中使用一些初始路由,用户最初会点击该路径以启动用于引导angular.js应用程序的HTML页面并加载任何其他javascript和css库你会需要.您将定义该路由,然后在节点应用程序中设置静态资源,以便浏览器可以加载这些内容以启动角度应用程序.

角度应用程序本身将包含在javascript文件中,这些文件将存在于快速应用程序的静态资源文件夹中.通常,像/js/myNgApp.js这样的东西可以起作用 - 但是你可以通过将控制器,指令,服务等分离到它们自己的js文件中来获得更多异国情调.这是你以后可以做的事情.

一旦角度应用程序加载并在浏览器中运行,您只需要在角度中使用$ resource服务来定义到节点中的api的ajax URL,然后让角度客户端执行get或post(或者其他)请求这些网址.

如果安全性是您在应用程序中需要的东西,则需要在加载角度应用程序之前将其实现为页面和URL.有快递的安全框架可以帮助您.我用护照.

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