2014-03-25 34 views
0

所以我不使用任何骨干逻辑,直到用户登录到应用程序。因此,为了使用node.js,应用程序从localhost:3000开始,服务器处理这部分中的路由。因此,例如在访问localhost:3000后,有两个选项,注册登录它表示处理这种工程,一个简单的routes.js文件处理这些路线的逻辑。 /signup,/login骨干路由,应用程序启动内部/配置文件?

这部分是所有的服务器端,我认为在这一点上不需要backbone.js。

然后最终用户成功登录到应用程序,该应用程序从/profile开始,这是我包含主干和我的JavaScript的地方,这里是我更依赖客户端路由和逻辑的地方,因为用户被批准播放,授予访问权。

现在在这里很不好意思,但我的问题是,因为我的应用程序启动/profile为什么路由器顶起来了?比如我有一个chat路线和调用该路由的网址不尊重尾部斜杠localhost:3000/profile#chat作品,但不是这个localhost:3000/profile/#chat

我读到这Backbone.js route optional parameter我试图扭转了语法,但没有运气。

这里是我的路线

module.exports = Router = Marionette.AppRouter.extend({ 
    appRoutes: { 
     '' : 'home', 
     '(/:)chat' : 'chat' // tried playing around here 
    } 
}); 

如此以来,开始由服务器如何获取尾部斜杠工作创造了/profile路线?

回答

0

Backbone是一个完全独立于您的节点/后端的前端JS框架。就路由而言,他们不共享任何逻辑。

使用快递服务的/ profile文件路径:

app.get('/profile', function(req, res){ 
    res.render('profile', {somedata:'somevalue'}); // etc.. 
}); 

然后在fronend,您Backbone.Router处理来自那里的任何路线:

var myRouter = Backbone.Router.extend({ 
    routes: { 
    '/' : 'profile', // Actually '/profile/ 
    '/chat' : 'chat' // Actually '/profile/chat 
    } 
}); 

最后,记得打电话Backbone.history.start()后您的路由器和所有路由都已定义为开始监视散列更改。

+0

非常感谢,上面的例子看起来应该可以工作。我用'/'来定义家庭/个人资料路线应该是答案,但由于某种原因,这不起作用。 –

+0

我认为这可能是因为该脚本没有包含在内。暂停让我做一些调试。我觉得这应该工作。 –

+0

是啊,似乎在这条路线上,我得到了404错误为我的脚本和CSS。 Express必须混淆我的应用程序。 –