2017-05-16 13 views
0

그래서 오늘이 문제로 어려움을 겪고 있습니다. 그러나 그것에 관한 프로퍼토리 문서를 찾을 수 없습니다.Hapines js와 POST 요청

저는 Vue.js/ES6 프론트 엔드와 Hapines를 사용하는 Node.js 백엔드를 보유하고 있습니다.

프런트 엔드에서 백엔드로 POST 요청을 통해 데이터베이스에 데이터를 삽입하려는 시점에 있습니다.

현재이 코드를

프런트 엔드 있습니다

saveOrder(){ 
    let Nes = require('nes'); 
    let appClient = new Nes.Client('ws://localhost:3000'); 
    appClient.connect((err) => { console.log(err); }); 

    let options = { 
     path: '/order', 
     method: 'POST', 
     payload: this 
    }; 

    appClient.request(options, (err, payload) => { 
     console.log(payload); 
    }); 
} 

백 엔드를

server.route({ 
    method: 'POST', 
    path: '/order', 
    config: { 
     id: 'order', 
     handler: (request, reply) => { 
      return reply('Request came through'); 
     } 
    } 
}) 

이 내가 서버에 보내는 JSON 객체입니다

{ 
    "path": "/order", 
    "method": "POST", 
    "payload": { 
    "products": [{ 
     "id": 2, 
     "plu": "1AB23CD", 
     "name": "Some name", 
     "description": "Some description", 
     "barcode": "123456789", 
     "sellUnitID": 1, 
     "taxGroupID": 1, 
     "labelID": 1, 
     "defaultPrice": 1, 
     "sellAmount": 1, 
     "archived": 0 
    }] 
    } 
} 

전화를 걸면 undefined가 반환됩니다.

나를 도와 줄 수있는 사람이 있습니까? 아니면 Hapines의 POST 요청이 Hapines Github 페이지에서 더 잘 설명되어있는 문서 형식이 있습니까?

모든 도움을 주시면 감사하겠습니다.

답변

0

connect 콜백 내에 let options = {...}appClient.request(...)을 이동해야합니다. connect은 비동기 적으로 실행되고 callback pattern이라는 자바 스크립트의 공통 패턴을 사용합니다. scoping works inside of functions 때문에 함수의 맨 위에 this에 대한 참조를 선언해야합니다.

지금 귀하의 경우 실제로 서버에 연결되기 전에 websocket 요청을하려고합니다.

function saveOrder() { 
    let self = this; 

    let Nes = require('nes'); 
    let appClient = new Nes.Client('ws://localhost:3000'); 

    appClient.connect((err) => { 

     if (err) { 
      console.log(err); 
      throw err; 
     } 

     let options = { 
      path: '/order', 
      method: 'POST', 
      payload: self 
     }; 

     appClient.request(options, (err, payload) => { 
      console.log(payload); 
     }); 
    }); 
}