【问题标题】:Express.js or angular for handling routes in a MEAN application?Express.js 或 Angular 用于在 MEAN 应用程序中处理路由?
【发布时间】:2014-09-11 05:00:17
【问题描述】:

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

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

角度

例如,如果我在 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');
});

所以我的问题是

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

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

【问题讨论】:

    标签: node.js angularjs routes mean-stack


    【解决方案1】:

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

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

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

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

    你可以这样看:

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

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

    【讨论】:

    • Express.js 可以处理除了 crud 之外的渲染模板,这意味着 Angular 没有用。例如。在 PHP 中,我可以使用 Slim 框架来编写 api 路由,或者我可以使用它创建一个完整的 Web 应用程序。
    • 这是一个旧答案,但无论如何。向用户隐藏后端快速路由以便他们在浏览器中访问这些路由时返回 404 的最佳方法是什么?
    • 你的评论得到答复了吗@mikebrsv
    猜你喜欢
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 2017-11-16
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 2018-02-18
    • 2016-06-11
    相关资源
    最近更新 更多