我可以在Express中使用AngularJS的路由配置吗?

时间:2015-08-11 17:59:09

标签: angularjs node.js express

我在Angular方面有以下代码:app.js

 angular.module('myApp',[
    'ngRoute'
  ])
  .config(function ($routeProvider, $locationProvider) {
    $routeProvider
      .when('/', {
        redirectTo: '/signin'
      })
      .when('/signup', {
        templateUrl: 'app/account/signup/signup.html',
        controller: 'signupController',
        controllerAs: 'ctrl'
      })
      .when('/signin', {
        templateUrl: 'app/account/signin/signin.html',
        controller: 'signinController',
        controllerAs: 'ctrl'
       })
     })

在我的快递方面遵循以下代码:server.js

var express = require('express');
var app = express();
var path = require("path");
var router = express.Router();
router.get('/', function(req, res){
    res.status(200).sendFile(path.join(__dirname + '/index.html'));
});
app.listen(8000);

signup.html和signin.html是index.html内的ng-views。

目前我只能提供一个静态页面。有没有办法让我们能够使用角度路线配置?或者我必须再一次在快递中写出单独的路线?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您只需要一种方法来提供静态文件。这条线就是这样做的。

app.use(express.static(path.join(__dirname, 'public')));

这是一个中间件,它会检查./public/是否有与该请求匹配的文件。如果匹配,它将返回该文件。如果没有匹配的文件,那么它将继续运行,您可以随后处理它。因此,在您的情况下,您将看到创建此文件夹路径public/app/account/signin/并将signin.html放入其中,然后在其中创建public/app/account/signup/signup.html

答案 1 :(得分:0)

使用npm安装http-server包而不是手动创建服务器将利用Angular路由。