Angularjs 如何同时处理Express JS和Angular JS路由?

Angularjs 如何同时处理Express JS和Angular JS路由?,angularjs,node.js,express,routes,ngroute,Angularjs,Node.js,Express,Routes,Ngroute,我正在使用Express、Angularjs开发一个web应用程序。我想在express上提供一个主页(即index.html)。服务器的代码写在xpressServer.js中 // file tree ->controller ---formController.js ->js ---app.js ->node_modules ->views ---form.html ---home.html -index.html -package.json -xpressServ

我正在使用Express、Angularjs开发一个web应用程序。我想在express上提供一个主页(即index.html)。服务器的代码写在
xpressServer.js

// file tree
->controller
---formController.js
->js
---app.js
->node_modules
->views
---form.html
---home.html
-index.html
-package.json
-xpressServer.js
以上是我的应用程序的文件结构

// xpressServer.js
var express = require('express'); 
var path = require('path');
var app = express();

app.use(express.static(path.join(__dirname, '/js')));
app.use(express.static(path.join(__dirname, '/controller')));
app.use(express.static(path.join(__dirname, '/views')));

app.get('/', function(req,res) {
    res.sendFile(path.join(__dirname + '/public/assets/view/index.html'));
});

app.listen(8081, function() {
    console.log('listenin on port 8081');
});
而且,我的
index.html

// index.html
<!DOCTYPE html>
<html ng-app="formModule">
    <head>
        <base href="/" />  
        <title>dfgadfggth</title>
        <link rel="stylesheet"     href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.2/angular.min.js"></script>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular-route.js"></script>       
    </head>
    <body>
       <div ng-view></div>
       <script type="text/javascript" src="/js/app.js"></script>       
    </body>
</html>
我一直在寻找解决方案,但找不到一个适合我的。请帮我解决这个问题


提前谢谢

如果使用客户端路由,则基本上需要使所有URL都服务于
index.html
——这样,如果您尝试直接导航到其中一个视图/刷新页面,就不会出现404错误。请参阅:
app.get('/*',function(req,res){res.sendFile(path.join(uu dirname+'/public/assets/view/index.html'));}我应该这样更改吗?沿着这些路线可能会起作用,是的:)只需确保您的“全包”路线是您在Express应用程序中定义的最后一条路线,否则它将覆盖您的其他路线(如静态资产等)。我尝试了相同的方法,但它不起作用!
// app.js
'use strict';

var app = angular.module("formModule",['ngRoute']);

app.config(['$routeProvider', '$locationProvider', function($routeProvider,   $locationProvider) {
    $locationProvider.html5Mode(true);
    $routeProvider
        .when('/home', {
            templateUrl: '/views/home.html'
        })
        .when('/form', {
            templateUrl: '/views/form.html',
            controller: '/controller/formController.js'
        })
        .otherwise({
            redirectTo: '/home'
        });
}]);