모듈 - npm http




Node.js HTTP:요청 'end'이벤트가 호출되지 않습니다. (2)

기본적으로 http POST는 서버에 POST 할 때만 시작됩니다. 확신 할 수는 없지만 웹 브라우저에서 server:port/users 를 방문하려고 시도하고 있으며 응답을 얻지 못했다고 가정합니다. 기본적으로 웹 브라우저는 서버를 사용 중입니다. 이 문제를 해결하려면 두 가지 옵션이 있습니다.

1. app.postapp.get 변경하면 /users 를 방문 할 때 이벤트가 올바르게 실행됩니다.

2. 또는 양식을 사용하여 게시 기능을 실행할 수 있습니다. 예를 들어, 다음 코드는 GET 사용하여 페이지를 방문하면 양식을 표시합니다. 양식을 제출하면 POST 됩니다.

var express = require('express'),
    app = express.createServer();

app.listen(1337, "127.0.0.1");

app.get('/users',function(req,res){
  res.send('<form method="post" action="/users"><input type="submit" value="Submit" /></form>');
})

app.post('/users', function(req, res){
  req.on('end', function() {
    console.log('success');
    res.send('success!!!');
  });
});

내 node.js 서버에 데이터 청크를 보내는 클라이언트가 있습니다.

"end"이벤트를 수신하고 누적 된 요청 본문을 검색하려고합니다.

여기 내 코드가 있습니다 :

app.post('/users', function(req, res){

  req.on('end', function() { // WHY IS THIS NEVER FIRED?
    console.log(req.body);

    res.send({
      "status": "ok"
    });

  });

});

문제는 '종료'이벤트가 절대로 발생하지 않는다는 것입니다.

왜 그 사람이 누군지 알아?

또한, 내가 이런 식으로한다면, req.body는 모든 신체 덩어리의 축적 된 몸이 될 것입니까?


동일한 문제가 발생하여이 토론에 도움이되는 것으로 나타났습니다. node.js의 http.createserver가 작동하지 않습니다.

간단히 말해서 .createServer 루프 안에 request.on("data",function() {}) 을 삽입하면 request.on 루프가 작동하게됩니다.







node.js