2014-03-25 2 views
0

그래서 사용자가 앱에 로그인 할 때까지 백본 로직을 사용하지 않습니다. 따라서 node.js를 사용하는 경우 응용 프로그램은 localhost:3000에서 시작하고 서버는이 부분의 경로를 처리합니다. 따라서 예를 들어 localhost:3000을 방문한 후 가입 또는 로그인의 두 가지 옵션이 있으며, 이는 엔지니어링을 처리하고 간단한 routes.js 파일은 이러한 경로의 논리를 처리합니다. /signup, /login백본 경로, 응용 프로그램은/profile 내에서 시작됩니까?

그 부분은 모두 서버 측이므로 backbone.js가 필요하지 않습니다.

마지막으로 사용자가 /profile에서 시작하는 앱에 성공적으로 로그인합니다. 여기에는 백본과 자바 스크립트가 포함되어 있습니다. 여기서 사용자는 게임 승인을 받았기 때문에 클라이언트 쪽 라우팅 및 로직에 더 의존합니다. 부여 된 액세스.

여기에 noobish가 있지만 내 질문은 내 앱이 시작된 이래로입니다 /profile 왜 라우터가 작동하지 않습니까? 예를 들어 나는 chat 경로가이 경로를 호출하는 URL은 후행는 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

백본은 노드/익스프레스 백엔드와 완전히 별개의 프론트 엔드 JS 프레임 워크입니다. 라우팅과 관련하여 그들은 어떤 논리도 공유하지 않습니다.

사용이/프로필 경로를 제공하기 위해 표현 :

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

마지막으로, 이후 Backbone.history.start()를 호출하는 것을 기억하십시오 fronend에 그런

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

를, 당신의 Backbone.Router는 거기에서 어떤 경로를 처리 라우터와 모든 경로가 해시 변경을 모니터링하기 시작하도록 정의되었습니다.

+0

감사합니다. 위의 예제가 제대로 작동해야합니다. 나는 홈/프로필 경로를 '/'와 함께 정의하는 것이 답이되어야하지만 어떤 이유로 든 작동하지 않는다. –

+0

스크립트가 포함되지 않았기 때문일 수 있습니다. 잠깐만 기다려주세요. 나는 이것이 효과가 있어야한다고 생각한다. –

+0

그래, 그 경로에서 내 스크립트와 CSS에 404 오류가 표시되는 것 같습니다. Express는 내 응용 프로그램을 혼란스럽게해야합니다. –

관련 문제