2017-03-26 6 views
0

例例です。nodejs内のexpressjsサーバー側ルーティングを持つuiルーターを使用したクライアント側のanglejsルーティングを使用できますか?以下は

var bodyparser=require('body-parser'); 
var fs=require('fs'); 
var express=require("express"); 
var myApp = express(); 
var MongoClient=require('mongodb').MongoClient; 
var assert=require('assert'); 
var url = 'mongodb://localhost:27017/dbname'; 
var ObjectId=MongoClient.ObjectID; 
var http=require('http'); 

myApp.use(express.static(".")); 
myApp.use(bodyparser.json()); 
myApp.listen(5000); 

私はそれ温家宝は、Apacheで実行うまく機能しているSPAにするために、UI-ルータを使用していた後、そこから唯一のインデックスファイルをロードするために、サーバ(Apacheまたはノード)を使用しています

は、インデックスが正しくロードされているが、次のURL:ノードサーバに、どのようにするルーティング機能するように、「/テスト/を取得することはできません」: http://localhost:5000/Test/#/dashboard がメッセージをスローサーバは、これは温首相がノード上で実行動作しません明示的に正しく

$ urlRouterProvider.otherwise( '/ login');

var DASHBOARD_ROOT = 'templates'; 

$ stateProvider.state( 'インデックス'、{ URL: '/ログイン' templateUrl 'login.htmlと' コントローラ 'employeeInfoCtrl' })。

ノードで
$stateProvider.state('dashboard', { 
    abstract :true, 
    url: '/dashboard', 
    templateUrl: 'dashboard.html', 
    controller: 'employeeInfoCtrl' 
}); 

$stateProvider.state('dashboard.home',{ 
    url:'', 
    templateUrl: DASHBOARD_ROOT +'/Home.html' 
}); 
$stateProvider.state('dashboard.about',{ 
    url:'/about', 
    templateUrl: DASHBOARD_ROOT +'/about.html' 
}); 
$stateProvider.state('dashboard.employeeinfo',{ 
    url:'/employeeinfo', 
    templateUrl:DASHBOARD_ROOT+'/employeeinfo.html' 
}); 

答えて

1

:あなたは*あなたが

app.use(express.static('dist')) //dist is where your js is bundled 

を使用してクライアントのビルドディレクトリを標的とすることにより、その後、ワイルドカードを(使用してすべての要求をリダイレクトすることを達成することができますGET#test

myApp.get('/test',function(req,resp){ 

    resp.render('index.html'); 
}) 
+0

こんにちはリッチー、それは動作していません:エラー:Function.Module._load(module.js:290:25)でFunction.Module._resolveFilename(module.js:339:15) で 'html'モジュール を見つけることができません。 ) at Module.require(module.js:367:17) at require(internal/module.js:16:19).... –

+0

インデックスファイルが正しくロードされていますが、ログイン時にビューを置き換えています。 uirouterのみを使用しています。 –

+0

@BhimashankarMantur同じ方法でログイン用のログインルートを作成する必要があります。 –

0

パスを追加する必要があります)をindex.htmlファイルに追加

app.get('*', (req, res) => res.sendFile('index.html'))); 
+0

私はuirouterを使用してクライアント側のルーティングだけをしたいが、expressjsはinbetweenに来ている、viewEngineを設定するhveのようです。 –

+0

@BhimashankarManturあなたのクライアントルータとあなたの意見を「間に入れて」表現するのはどういう意味ですか? エクスプレスでビューをレンダリングしない場合、ビューエンジンを設定する必要はありません。 –

+0

amirouterを使用してルーティングを設定していますが、expressはtat設定が機能しないようにしています。データを取得して送信するためにexpressを使用したい –

関連する問題