刷新路径参数

时间:2017-02-25 19:33:29

标签: javascript angularjs node.js express

我为这样的网页创建路由

angular.module("ui",[]).config(function($routeProvider,$locationProvider,$httpProvider)
{
  $routeProvider.when('/home',
  {
     templateUrl: 'home.html'

  })
  .when('/login',
  {
    templateUrl: 'login.html'

  })
  .when('/sign_in',
  {
    templateUrl: 'create_account.html'

  })
  .when('/profil',
  {
    templateUrl: 'profil.html'

  })
  .when('/note/:id',
  {
    templateUrl: 'view_note.html'

  })
  .when('/editNote/:id',
  {
    templateUrl: 'edit_note.html'

  })
  .otherwise({
    redirectTo: '/home'
  });
  $locationProvider.html5Mode(true);
});

和服务器端代码(expressjs)

app.get('/*', function(req, res) { 
   res.sendFile(__dirname + '/views/index.html')
});
app.get('/note/:id', function(req, res) { 
   res.sendFile(__dirname + '/views/index.html')
});
app.get('/note/*', function(req, res) { 
   res.sendFile(__dirname + '/views/index.html')
});
app.get('/:id', function(req, res) { 
   res.sendFile(__dirname + '/views/index.html')
});

所以我的所有路由配置运行都很完美,但是当我尝试刷新页面时,除了具有/editNote/:id路由配置的页面之外,几乎所有页面都正常运行。那么如何解决这个服务器端路由问题(expressjs)

enter image description here

2 个答案:

答案 0 :(得分:0)

在服务器文件上添加:

app.get('/note/*', function(req, res) { res.sendFile(__dirname + '/views/index.html') });

删除

{{1}}

答案 1 :(得分:0)

最后我可以找出真正的问题,它导致了mongoose route和express / angularjs route之间路由的同名。所以我改变了angularjs路线名称