2011-09-06 6 views
0

.XML 파일로 응답하는 간단한 코드가 있다고 가정 해 보겠습니다.Node.js : 응답이 올바른 사용자에게 전달됩니까?

app.post '/incoming', (req,res) -> 
    console.log "Hello, incoming call!" 
    message = req.body.Body 
    from = req.body.From 

    sys.log "From: " + from + ", Message: " + message 

    test = "hello" 
    r = new Twiml.Response() 
    r.append(new Twiml.Say('Hello, there!' + test + ' Enter your ATM card PIN')) 
    console.log(r.toString()) 

    res.send r.toString() 

두 개의 요청이 동시에 발생하면 잘못된 응답을받을 수 있습니까? 비동기가 어떻게 작동하는지, 그리고 이것이 내가 원하는 것을하고 있는지 완전히 이해하지 못하기 때문에 이것을 묻습니다.

감사

+0

@Raynos, 나는 실제로 그렇지 않습니다. 나는 여기저기서 만져 왔지만 그다지 복잡하지는 않습니다. – donald

답변

2

는 응답이,과 같이 res와 상호 작용 떨어져 코드에서 몸에서 모든 코드를 제거하기 위해 이동하는 클라이언트 알고 싶다면 : 당신은 것을 볼 수 있습니다 이제

app.post '/incoming', (req,res) -> 
    res.send r.toString() 

당신의 r.toString()을 올바른 응답으로 보냅니다.

2 개 요청이

2 개 요청이 동시에 올 경우에도

, 자바 스크립트가 단일 스레드와 차단하고, 같은 시간에 오는 경우에 해당하므로, 어떠한 경쟁 조건이 결코 가능성이입니다.

2

당신이 묻는 것은 실제로 CoffeeScript 범위에 관한 질문입니다. 기능이있는 경우 (예 :

(req, res) -> 

그 함수 내에서, 당신은 reqres 항상 함수에 전달 된 개체를 가리 것을 확신 할 수 있습니다. 유일한 예외는 동일한 인수 이름을 가진 중첩 함수가있는 경우입니다. 예를 들어,

(req, res) -> 
    setTimeout ((req, res) -> console.log req, res), 1 

은 외부 함수가 어떤 값으로 호출 될 때 setTimeout에 전달 함수가 자신의 reqres 인수를 가지고 있기 때문에, undefined, undefined를 표시하는 그림자 외부 reqres.합니다

분명히 당신은 그렇게하지 않을 것입니다. (물론 그렇게해서는 안됩니다.) 걱정할 필요가 없습니다. 서버가 초당 수만 번 핑 (ping) 될 수 있으며 각 reqres은 구분되지 않습니다.

관련 문제