node.js - Express.js 或 Angular 用于在 MEAN 应用程序中处理路由?

标签 node.js angularjs routes mean-stack

我对 Nodejs/express/angular 的一切都是全新的,我刚刚遇到了一个困扰我的问题。

当你有一个 MEAN 堆栈时,似乎 Express.jsAngular 都可以处理路由。

Angular :

例如,如果我在 Angular 中定义一个路由,我可以这样做:

var app = angular.module("app", []).config(function($routeProvider) {
    $routeProvider.when('/login', {
        templateUrl: '/templates/login.html',
        controller: 'LoginController'
    });

    $routeProvider.when('/front', {
        templateUrl: '/templates/front.html',
        controller: 'FrontController'
    });


    $routeProvider.otherwise({redirectTo: '/front'})
});

但我可以使用 express.js:

app.get('/',function(req,res){
    res.sendfile('templates/angular.html');
});

所以我的问题是:

什么时候使用 Angular 路由,什么时候使用快速路由?

(我可能会错过一些非常明显的东西,但我希望你能指出)

最佳答案

这两个在单个页面应用程序中具有不同的用途。

该应用程序将执行所有 CRUD(您创建/读取/更新/删除内容的端点,例如:项目、用户、账单等)。它还会做所有的身份验证工作(如 /login/register)。

所有这些都需要路由,因为您希望像 /api/users 这样的东西来获取所有用户。所有这些路由,AKA CRUD 路由和身份验证路由都进入 express.js 路由器。为什么在那儿?因为那些是后端的路由。

另一方面,您有 Angular 应用程序,其中包含应用程序的可视部分,并且您需要一些路由。你希望 / 指向你的家,你会希望 /users 有一个页面来列出你的用户,甚至是 /users/add有一个带有表单的页面来添加新用户。

你可以这样看:

后端路由(快速路由):这些是最终用户不必知道甚至使用它们的路由(您的 Angular 应用程序将使用它们与后端通信以处理其数据,但最终用户不会将它们直接放在浏览器上))。

前端路由( Angular 路由):是映射到应用程序不同页面的路由,因此,最终用户可以使用它们直接访问应用程序的某些部分。

关于node.js - Express.js 或 Angular 用于在 MEAN 应用程序中处理路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852394/

相关文章:

javascript - 使用 Node CRON作业调用自己的请求

node.js - 快速路线不返回

javascript - javascript 网络应用程序遇到错误时的替代内容

routes - Akka 消息传递机制示例

symfony 路由注解需求约束

node.js - node_modules 中 ExpressJS 的脚本路径

javascript - 解析 JSON 以排除重复 Node.JS

angularjs - AngularJS 中函数的 promise 返回值

javascript - 如何在AngularJS的 Controller 中对JSON数组进行排序?

asp.net-mvc - Asp.Net MVC 注入(inject)和区域