게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
node js 고수님들 도와주세요!express post 문제요(왕초보)
게시물ID : programmer_22203짧은주소 복사하기
작성자 : 카드캡처체리
추천 : 0
조회수 : 544회
댓글수 : 8개
등록시간 : 2018/03/18 22:28:10
옵션
  • 베스트금지
  • 베오베금지
  • 본인삭제금지
안녕하세요 ㅠ 왕초보입니다!
 
제가 post를 구현하는데 만약에 어플에서 1이라는 string을 주면 yes라는 응답을 주고
그 외 스트링을 받으면 no라는 응답을 받아야 하는 server를 구현했습니다.
 
 
밑에 코드를 잠깐 보고 와주시면
저는 /test를 부르면 당연히 차례대로 1번 -> 2번 순서대로 수행될 줄 알았는데
제가 보니깐 2번 -> 1번으로 수행되어서 temp의 값이 undefined 찍혀 나옵니다 ㅠㅠ..
순서만 제대로 되면 좋을 거 같은데... 어떤 방법 없나요???
 
 
(참고로 안드로이드와 연동된 서버입니다...ㅠ)
 
**서버측 코드입니다!
 
app.post('/test', (req, res) => {
    var inputData;
    var temp;
    console.log('test access');
 
    //**********************1번
   req.on('data', (data) => {
     inputData = JSON.parse(data);
     if(inputData.name = "1"){
       temp = 'yes';
     }else{
       temp = 'no';
     }
   });

   //**************2번
   res.end(temp);
});
전체 추천리스트 보기
2018-03-18 22:50:56추천 0
지금 진짜 그런지 줄마다 console.log를 때려 넣으니깐 진짜 순서가 바뀌어져서 나옵니다...
res.end가 실행된 후 req.on이 실행되네요 ㅠㅠ 이게 javascript문제인지 함수문제 인지 모르겠지만 아무튼 도와주세요!ㅠㅠㅠ
댓글 0개 ▲
2018-03-19 00:26:08추천 0
2번 삭제하고

1번 안에 res.send(temp) 작성
댓글 0개 ▲
2018-03-19 03:20:40추천 0
app.post('/test', (req, res) => {
res.end(req.query.name=='1')?'yes':'no';
});
댓글 3개 ▲
2018-03-19 03:21:08추천 0
한줄이면 됩니다
2018-03-19 03:23:01추천 0
app.post('/test', (req, res) => {
res.end( (req.query.name=='1')?'yes':'no' );
});
괄호 잘못 썼네요
2018-03-19 03:27:48추천 0
app.post('/test', (req, res) => {
res.end( (req.body.name=='1')?'yes':'no' );
});
자꾸 바꿔서 죄송합니다. get은 req.query에 인자가 들어가고 post는 req.body에 인자가 들어갑니다.
2018-03-19 03:28:45추천 0
on은 evnet listener를 등록하는 함수입니다. 저렇게 되면 req라는 object가 'data'라는 이벤트를 받았을때 수행하는 것인데 이미 post함수에서 req를 전달받을때 그 안에 data라는 맴버가 이미 포함되어 있습니다. 이벤트가 아니라 그냥 맴버니까 req.data로 접근하면 됩니다.
댓글 0개 ▲
2018-03-19 23:16:38추천 0
댓글 0개 ▲
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호