我对 Nodejs/express/angular 的一切都是全新的,我刚刚遇到了一个困扰我的问题。
当你有一个 MEAN 堆栈时,似乎 Express.js
和 Angular
都可以处理路由。
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/