【问题标题】:Areas in MEAN stackMEAN 堆栈中的区域
【发布时间】:2016-01-20 14:37:17
【问题描述】:

我有一个门户说“www.xxxx.com”,我们必须为特定公司创建一个子门户,比如“www.xxxx.com/company1”,我们将所有控制器和视图基于一个区域“公司 1"。在 MEAN 堆栈中是否有类似的方法可以做到这一点?在 ASP.NET MVC 中,我们可以使用区域实现类似的事情

【问题讨论】:

  • 希望我没有误解你,但只要你在你的应用文件中正确引用控制器和视图,你如何构建你的控制器和视图并不重要。这里有一些关于如何为每个页面构建控制器/视图的灵感。 github.com/sahat/hackathon-starter
  • 谢谢。我们为此创建了一个类似的结构,想知道这是否是正确的方法

标签: angularjs node.js express mean-stack


【解决方案1】:

是的,你可以做到。如果您使用的是 express,那么只需在“views/company1.html”之类的视图文件夹中定义您的子门户(或者如果您使用的是另一个模板引擎,如jade或ejs,请使用“views/comapny1.jade || views/comapny. ejs") & 然后在您的目录 app.js 中使用此代码:

另外,设置您使用的默认引擎:

 app.set('view engine', 'jade');
            Or
 app.set('view engine', 'ejs');

 app.get('/company1').function(req, res) {
     res.render('comapny1.html');
 } 

然后您可以使用 www.xxxx.com/company1 访问您的子门户。 基本上,company1.html 将是您的子门户的布局/基础文件,您可以在其中定义您的控制器、服务、指令等。

如果还是这样,您在执行此操作时有任何问题,您可以发布您的回复。

【讨论】:

  • 谢谢,我们已经创建了一个文件夹结构并使用了类似的快速路由逻辑。想知道这是否是正确的方法
  • 是的,这是正确的方式,因为我还使用相同的方法创建了一个市场应用程序,其中买方和卖方有不同的门户。就我而言,我有类似的东西:www.xxxx.com/seller(卖方)、www.xxxx.com/admin(管理员)和 www.xxxx.com(买方)。它们都有各自的依赖关系。
  • 我们能否也有一个中间件来决定在快递中遵循哪条路线。例如,如果两个应用程序都有类似的命名控制器,例如 app.get('/landingpage', homeController.landingpage);。而不是为 /company1/landingpage 和另一个 /landingpage 编写两个控制器
  • 为了实现这一点,你不需要使用中间件,除此之外,在路由中使用一些前缀来分隔它。像 route.get('/comapny1_getUser', controlObj1.getUsers); route.get('/comapny2_getUser', controlObj2.getUsers);其中 controlObj1 & controlObj2 是控制器返回的对象。如果还是这样,您有一些困惑,请告诉我。
猜你喜欢
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 2014-05-09
相关资源
最近更新 更多