javascript - AngularJS 和 Node.js 与 ExpressJS 集成

标签 javascript node.js express

<分区>

我正在尝试使用 Node.js 以及 Express 和 Angularjs 编写一个应用程序。

有没有可能让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?

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

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

提前致谢!

最佳答案

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

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

angular 应用程序本身将包含在 javascript 文件中,这些文件将位于 express 应用程序的静态资源文件夹中。通常,像/js/myNgApp.js 这样的东西会开始工作——但你可以通过将 Controller 、指令、服务等分离到它们自己的 js 文件中来变得更奇特。这是您稍后可以做的事情。

在浏览器中加载并运行 Angular 应用程序后,您只需要使用 $resource service在 angular 中定义你的 ajax url 到 Node 中的 api,然后让 angular 客户端对这些 url 执行获取或发布(或其他)请求。

如果安全性是您在应用程序中需要的东西,则需要在加载 Angular 应用程序之前将其实现为页面和 url。有一些用于 express 的安全框架可以帮助您解决这个问题。我用 passport .

在 Chrome 中,开发者工具(尤其是网络选项卡)将成为您最好的 friend 。

关于javascript - AngularJS 和 Node.js 与 ExpressJS 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291886/

相关文章:

node.js - 在 Jade 文件中访问 Node 环境变量

node.js - ExpressJS多语言路线

node.js - Ember : handlebars does not satisfy its siblings' peerDependencies

node.js - NGINX 反向代理部署后 ExpressJS 文件上传停止

javascript - 在 Node.js 中写入 process.stdin 并解析该行的最佳方法?

JavaScript 检查是否单击了开始按钮

javascript - d3 从 svg 元素中选择数据

javascript - Ruby json gem 正在编码 html 实体

jquery - 如何克服从 Angular 2 到 Node/express 的 CORS?

node.js - expressJS/Node应用程序运行错误