2016-07-13 1 views
1

각도 j를 사용하여 서버에 http 요청을 보내는 방법을 알고 있습니다. promise이 반환되면 response을 수신하고 그 이후에 UI를 조작하는 방법을 알고 있습니다. 그러나이 접근법은 내가 염두에두고있는 것에 사용될 수 없습니다.은 각도 j에 http 요청을 보냅니다.

그러나 내가 알 수없는 것은 웹 사이트에 요청을 보내는 방법입니다.

는 I는 POST 요청을 수신 한 후 어떤 도움이 크게 인식 될 AngularJS와 사이트

app.get('/', function(req,res){ 
    res.sendFile(__dirname+'/index.html') 
}) 

app.post('/receiveData', function(req,res){ 
    var data = req.body.data 
    // assume data is a boolean 

    if(data){ 
     //show a view in index.html using angular js or anything else 
    }else { 
     //show a different view in index.html 
    } 
}); 

의 UI와 DOM 조작 서버 localhost:800/receiveData있다. 각도 j가 필요합니다. SPA를 갖는 것이 필수적입니다. 필요한 경우 추가 스택을 추가 할 수 있습니다.

편집 : MarcoS가 지적한대로 dom 조작은 서버 측에서 이상적으로 일어나지 않아야합니다. 나는 IPFSnode jsangular js과 결합하여 단일 페이지 응용 프로그램을 개발합니다. IPFS을 사용하여 설정 한 노드 군에는 내 서버와의 통신이 열려 있습니다 (의도적으로). 통신 회선을 통해 내 서버로 보낸 데이터 패킷을 기반으로 사용자에게 index.html을 통해 메시지를 전달해야합니다. ,
당신은 단지 서버 활동 (데이터베이스를 업데이트 이메일을 보내해야합니까 ... 당신이 하지는 UI와 DOM을 조작해야 서버 측에 :

+0

- 서버 측 또는 프런트 엔드. – CozyAzure

+0

서버에 HTTP 요청을하는 ** 다른 ** 클라이언트에 대한 응답으로 클라이언트에서보기를 업데이트하는 방법을 묻는 중입니까? 예를 들어 채팅 시스템을 원할 수도 있습니다 (Bob이 서버에 채팅 메시지를 보낸 다음 서버가 Alice의 브라우저에 새 메시지가 있음을 알리고 표시를 업데이트해야 함). – Quentin

+0

그런 식으로 작동 할 수 있습니다. 나는'socket.io'로 조금 실험했다. 너는 무엇을 염두에두고 있니? –

답변

2

나는 당신의 접근 방식이 잘못 생각 ... 정적 인 페이지를 반환하십시오.
그러면 클라이언트 측 호출 스크립트를 읽을 결과 (JSON/XML/... 형식)를 출력 할 수 있습니다.

OP 편집에 이어, 나는 그가 서버를 원한다는 것을 이해해야한다. 을 클라이언트에 푸시한다.
서브 측 푸시를 받으려면 클라이언트에서으로 응답해야합니다. 컨트롤러에서
:

function getServerState(changeState) { 
    return $http.get("/receiveData").then(function(res) { 
    changeState(res.data); // notify the watcher 
    }).catch(function(e) { 
    /* handle errors here */ 
    }).then(function() { 
    return getServerState(changeState); // poll again when done call 
    }); 
} 

이런 식 소비 :

getServerState(function(status) { 
    $scope.foo = status; // changes to `foo` $scope variable will reflect instantly on the client 
}); 

그리고, 서버 측 :

당신이 정말로보기 템플릿의 일을 누가 결정해야 할 것입니다
app.post('/receiveData', function(req, res) { 
    var data = req.body.data; // assume data is a boolean 
    res.end(JSON.stringify(data); 
}); 
+0

'IPFS' 노드를'nodejs'와'angularjs'와 결합하려고합니다. 'IPFS' 노드는 서버와 열린 통신 라인을 통해서만 통신 할 수 있습니다. 더 나은 설명과 함께 편집을 추가했습니다. 당신이 그것을 볼 수 있다면 정말로 좋을 것입니다. 감사합니다 –

+0

지금 확인하십시오. –

+0

나는 본다. 내 대답 업데이트 중. – MarcoS