express (> 3.0) 프레임 워크를 사용하여 nodejs (v1.8.15)의 페이지 일부를 동적으로로드/렌더링해야합니다. 일반적으로 단일 페이지 앱을 만들고 싶습니다.express에서 페이지를 동적으로 렌더링 /로드하는 방법은 무엇입니까?
페이지 상단에 링크가있는 메뉴가 있습니다. 링크를 클릭하면 AJAX 페이지 로딩과 마찬가지로 아래 내용이 변경됩니다. 예를 들어
:
>home|login|signup|chat
..content for home..
나는 '가입'링크를 누르면 : Express에서
home|login|>signup|chat
..content for signup..
을 나는 서버의 경로가 있습니다
var express = require('express');
var app = express();
app.get('/signup', function(req, res) {
// render signup.jade
res.render('signup');
}
app.post('/signup', function(req, res) {
// .. work with information
if (ok) res.send('ok', 200); else res.send(error, 200);
}
this을 읽은 후를, socket.io를 사용해야한다는 것을 알아 냈습니다. 나는 소켓을 잘 알고 있으므로 클라이언트에서 서버로 '링크를 클릭하는'것에 대한 데이터를 보내는 것이 쉽습니다.
1 : 내가 명시 적으로 쓴 것처럼 동적으로 페이지를 렌더링 /로드하려면 어떻게해야합니까?
예, 페이지로드에는 AJAX를 사용할 수 있지만 .post
방법은 명시 적으로 작동합니까? 그런 사이트를 만들기 위해 내 생각을 어떻게 구성해야합니까?
한편, 나는 Derby과 SocketStream에 대해 읽었지만 이해하지 못했습니다.
Q2 : 내 목표 (사이트 기능 : 로그인, 가입, 채팅)에 Derby 또는 SocketStream을 사용할 수 있습니까? 방법?
SocketStream이 필요한 경우 Heroku가 작동하지 않기 때문에 매우 나쁠 것입니다.
답변 해 주셔서 감사합니다. 아약스에서로드 할 때 html 페이지에 대한 액세스를 제한하는 방법을 알고 계십니까 : $ ('# container'). load ('page.html')? 사람들이 서버의/public 폴더에있는 http : // localhost : 3000/views/page.html을 입력 할 수 있기 때문에 – sirjay
나는 이해할 수 있을지 잘 모르겠습니다. 메인 페이지에서 ajax를 통해서만 page.html을로드 할 수 있지만 http : //domain.tld/views/page.html을 입력하여 직접로드 할 수 없도록하려는 경우에는 가능하다고 생각하지 않습니다. 공공 자원. –
내가 생각할 수 있습니다. 때문에 php index.php :' php define ("MODULE_FILE", true); require_once ("page.php"); ...?>', page.php :' php if (! defined ("MODULE_FILE")) exit; ...?>'. 그래서, 나는 자바 스크립트에 그것을 만들 필요가있다. – sirjay