【问题标题】:AngularJS routing Server side support (NodeJS+express)AngularJS 路由服务器端支持(NodeJS+express)
【发布时间】:2015-05-22 06:02:17
【问题描述】:

我在服务器上使用 NodeJS + expressJS,在客户端使用 AngularJS

AngularJS 控制器有以下路由:

app.config(function($routeProvider,$locationProvider) {
$routeProvider
 .when('/field1/:id', {
  controller: 'ctrl1',
  templateUrl: "/view/mainpages/field1.html"
})
 .when('/field2/:id', {
  controller: 'ctrl2',
  templateUrl: "/view/mainpages/field2.html"
})
........... many many 
.when('/', {
  controller: 'ctrl0',
  templateUrl: "/view/mainpages/index.html"
})
.otherwise({redirectTo : '/'});

NodeJS 静态:

app.all('/*', express.static(__dirname + '/client'));

在调用直接通过此链接的情况下,如何使服务器重定向其路径上相对于根目录的所有静态页面。

示例: server:3000/field1/23 必须致电server:3000/client/index.html 并且索引必须像server:3000/js/cntr1.js一样上传JS

更新:我找到了解决问题的方法。但它看起来像拐杖一样丑

app.get('/field1/([0-9]+$)', function(req, res, next) { 
    req.url='/index.html';
    next();
 });
app.use('/field1', express.static(__dirname + '/client'));

也许有更优雅的解决方案?

【问题讨论】:

    标签: javascript angularjs node.js express angularjs-routing


    【解决方案1】:

    在 expressjs 中,您可以使用正则表达式模式匹配来定义路由。这意味着,特定集合下的任何内容都将始终从服务器端返回相同的页面,您将让 Angular 来决定究竟要显示什么或执行什么操作。

    将 / 上的所有内容重定向到您需要管理资产的同一页面并不是一个好主意,它们也存在于 / 部分,而是使用易于管理的子目录是个好主意

    跟随sn-p会将应用路径下的所有内容重定向到服务器端的同一页面

    app.get('/app/*', function(req, res) {
      res.send('app_index');
    })
    

    如果您不想被限制在一个应用程序目录,而是有许多不同的根级目录,所有这些都需要指向同一个页面,您可以这样做

    app.get('/(app|server|client|form|dashboard)/*', function(req, res) {
      res.send('app_index');
    })
    

    【讨论】:

    • app.get('/field/:name', function(req, res) { var name = req.params.name; res.render('/' + name); }); 但 :name 可以是 ID。我寻找通用解决方案。我认为它在 REST 应用程序中很好地传播了文字问题
    • 在这个你的评论代码中,你想做什么?你想喜欢http://server:3000/name 对吗?但是这个页面将包含哪个视图?
    • 是的。我想要 http://server:3000/name 当 name = 'index.html' 或 'controll.js'.... 但它可以是 '23' (角度页面的参数),然后是 http://server:3000/field/2 =http://server:3000/field=http://server:3000/
    • 我看 app.get('/field/([0-9]+$)' 但这不是一个好的解决方案。我会有很多选择。并且不想为每条路径绘制。
    猜你喜欢
    • 2018-10-10
    • 2018-02-25
    • 2014-10-03
    • 2015-04-18
    • 2013-05-24
    • 2017-04-15
    • 2017-11-18
    • 1970-01-01
    相关资源
    最近更新 更多