铁路中的express-subdomain-handler告诉我子域param(路由中)是控制器为什么?

时间:2012-04-05 06:46:18

标签: javascript node.js express railway.js

好吧,我遇到了这个问题。 我有这条路线:(代码位改变)                                                                    文件:/home/dotcloud/current/config/routes.js

exports.routes = function (map) {

    // Generic routes. Add all your routes below this line
    // feel free to remove generic routes
        //map.all(':controller/:action');
 //   map.all(':controller/:action/:id');


        var sitesControllers = [
                "RequestSiteLogin",
                "IsValidSiteLogin",
                "HoldSiteLogin",
                "RequestSiteProfile",
                "LogoutSite",
                "RevalidState"
        ];
        map.namespace('/subdomain/Users/:id/SitesCotnrol/', function (site) {
            site.resources('sites',{only: sitesControllers},function (action) {
                action.post("RequestSiteLogin","SitesCotnrol/RequestSiteLogin#:id");
                action.post("IsValidSiteLogin","SitesCotnrol/IsValidSiteLogin#:id");
                action.post("HoldSiteLogin","SitesCotnrol/HoldSiteLogin#:id");
                action.post("RequestSiteProfile","SitesCotnrol/RequestSiteProfile#:id");
                action.post("LogoutSite","SitesCotnrol/LogoutSite#:id");
                action.post("RevalidState","SitesCotnrol/RevalidSite#:id");
            });
        });

        var adminControllers = [
                "AddSite",
                "RemoveSite",
                "HoldAllSites",
                "LogoutApplication",
                "UpdateApplicationSettings",
                "Echo"
        ];
        map.namespace('/subdomain/Applciation/Control',function (admin) {
        admin.resources('admin',{only: adminControllers},function (action) {
        action.post("AddSite","/subdomain/Application/Control/AddSite");
        action.post("RemoveSite","/subdomain/Application/Control/RemoveSite#:id");
        action.get("Echo","#echo");
        action.get("HoldAllSites","/subdomain/Application/Control/HoleAll");
        action.get("LogoutApplication","/subdomain/Application/Control/LogoutApplication");
        action.get("UpdateApplicationSettings","/subdomain/Application/Control/UpdateApplicationSettings");
    });
});
};

现在我尝试启动的网址是这样的: http://application.pmpdevelopmentfront.tk/control#echo 页面中的参数Param ControlDomain与子域相同,请参阅https://github.com/WilsonPage/express-subdomain-handler 请不要确定这里做了什么。

路线更新:cli:

dotcloud@frontend-default-www-0:~/current$ ./node_modules/railway/bin/railway  routes
   info  - socket.io started
        _subdomain_User_SitesCotnrol_site_RequestSiteLogin POST   //subdomain/Users/:id/SitesCotnrol/sites/:site_id/RequestSiteLogin        /subdomain/Users/:id/SitesCotnrol/SitesCotnrol/RequestSiteLogin#:id
        _subdomain_User_SitesCotnrol_site_IsValidSiteLogin POST   //subdomain/Users/:id/SitesCotnrol/sites/:site_id/IsValidSiteLogin        /subdomain/Users/:id/SitesCotnrol/SitesCotnrol/IsValidSiteLogin#:id
           _subdomain_User_SitesCotnrol_site_HoldSiteLogin POST   //subdomain/Users/:id/SitesCotnrol/sites/:site_id/HoldSiteLogin           /subdomain/Users/:id/SitesCotnrol/SitesCotnrol/HoldSiteLogin#:id
      _subdomain_User_SitesCotnrol_site_RequestSiteProfile POST   //subdomain/Users/:id/SitesCotnrol/sites/:site_id/RequestSiteProfile      /subdomain/Users/:id/SitesCotnrol/SitesCotnrol/RequestSiteProfile#:id
              _subdomain_User_SitesCotnrol_site_LogoutSite POST   //subdomain/Users/:id/SitesCotnrol/sites/:site_id/LogoutSite              /subdomain/Users/:id/SitesCotnrol/SitesCotnrol/LogoutSite#:id
            _subdomain_User_SitesCotnrol_site_RevalidState POST   //subdomain/Users/:id/SitesCotnrol/sites/:site_id/RevalidState            /subdomain/Users/:id/SitesCotnrol/SitesCotnrol/RevalidSite#:id
                   _subdomain_Applciation_Control__AddSite POST   //subdomain/Applciation/Control/admin/:admin_id/AddSite                   /subdomain/Applciation/Control//subdomain/Application/Control/AddSite#undefined
                _subdomain_Applciation_Control__RemoveSite POST   //subdomain/Applciation/Control/admin/:admin_id/RemoveSite                /subdomain/Applciation/Control//subdomain/Application/Control/RemoveSite#:id
                      _subdomain_Applciation_Control__Echo GET    //subdomain/Applciation/Control/admin/:admin_id/Echo                      /subdomain/Applciation/Control/#echo
              _subdomain_Applciation_Control__HoldAllSites GET    //subdomain/Applciation/Control/admin/:admin_id/HoldAllSites              /subdomain/Applciation/Control//subdomain/Application/Control/HoleAll#undefined
         _subdomain_Applciation_Control__LogoutApplication GET    //subdomain/Applciation/Control/admin/:admin_id/LogoutApplication         /subdomain/Applciation/Control//subdomain/Application/Control/LogoutApplication#undefined
 _subdomain_Applciation_Control__UpdateApplicationSettings GET    //subdomain/Applciation/Control/admin/:admin_id/UpdateApplicationSettings /subdomain/Applciation/Control//subdomain/Application/Control/UpdateApplicationSettings#undefined

1 个答案:

答案 0 :(得分:2)

首先,删除通用路线:

// Generic routes. Add all your routes below this line
// feel free to remove generic routes
map.all(':controller/:action');
map.all(':controller/:action/:id');

你可能会错过第二件事:命名空间。尝试使用CLI调试路由:railway routes

第三:需要检查你的esh初始化(正确的前缀,正确连接管理名称空间前缀)。

BTW:在当前的铁路线路实施中,子域看起来像缺失的功能。为什么不直接向此模块添加子域处理,并避免使用其他代码和依赖项。