私はNodejs/express/angularのすべてにまったく慣れていないので、気になる質問に遭遇しました。
MEANスタックがある場合、ルートはExpress.js
と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ルーティングを使用し、いつエクスプレスルーティングを使用しますか?
(私はここで非常に明白な何かを見逃すかもしれませんが、あなたがそれを指摘できることを願っています)
これら2つは、単一ページアプリで異なる目的を果たします。
アプリはすべてのCRUD(プロジェクト、ユーザー、請求書など、コンテンツを作成/読み取り/更新/削除するエンドポイント)を実行します。また、すべての認証処理(/login
や/register
など)も実行します。
/api/users
のようなものですべてのユーザーを取得する必要があるため、これらすべてにルートが必要です。これらすべてのルート、別名CRUDルート、および認証ルートは、express.js
ルーターに入ります。なぜそこに?それらはバックエンドのルートだからです。
一方、あなたはあなたのangularアプリケーションを持っています、それはあなたのアプリケーションの視覚的な部分を含み、そこにいくつかのルートが必要です。あなたは/
があなたの家を指すようにしたいでしょう。 /users
にユーザーを一覧表示するページを作成するか、/users/add
に新しいユーザーを追加するためのフォームを含むページを作成する必要があります。
あなたはそれをこのように見ることができます:
バックエンドルート(エクスプレスルート):エンドユーザーがそれらを知る必要がない、または使用する必要がないルートです(angularアプリはそれらを使用してバックエンドと通信し、操作します)そのデータですが、エンドユーザーはそれらをブラウザに直接配置しません))。
フロントエンドルート(角度のあるルート):アプリケーションのさまざまなページにマップされるルートであり、そのため、エンドユーザーはそれらを使用してアプリケーションの一部に直接アクセスできます。