:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
18/10/28 20:31
사용자 <-> node.js <-> PHP로 생각하시면 안되고,
사용자 <-> 아파치(혹은 nginx) <-> PHP ............................................<-> node.js 로 구성하시면 됩니다. 즉, node.js와 사용자를 직접 붙이시면 안되고, node.js앞단에 static html 을 처리하거나, php등 다른 서버 사이드 언어를 처리할 수 있는 리버스 프록시 기능을 갖춘 웹서버를 두시면 됩니다.
18/10/29 16:07
php랑 node랑은 차이가 좀 있습니다.
제 생각에 질문자님께선 php 코드만들걸 node에 동치되는 코드를 어떻게 만들수 있는가 고민하시는것 같은데.. php처럼 웹문서(?)로 하는건 아니구요. http 모듈을 사용해야하는데.. 그것보단 express라는 모듈을 한번 살펴보시고 쓰면 될 것 같습니다. express를 쓰면 php에서 처럼 뷰를 생성하는 뷰엔진 들(jade, ejs 등..)도 사용 가능합니다. var express = require('express'); var app = express(); // POST method route app.post('/', function (req, res) { res.header({ 'Expires': 'Mon 26 Jul 1997 05:00:00 GMT' }) res.send('hello world') }) 이런 느낌으로 한번 찾아보세요~
18/10/29 16:25
답변 감사합니다.
제 생각도 유진님께서 제안해주신 것과 동일한데, 이 경우엔 html파일이 아닌 js파일이 되야하지 않나요? 저는 HTML파일 형태를 유지해야하는 상황(결제사에서 해당 파일(~~~.html)에 대한 요청을 합니다)이라 js파일로 바꾸지 않고 Node에서 연결한다는게 이해가 가지 않습니다. 참고로 파일은 https://github.com/PAYPLECORP/manual/blob/master/cPayPayple/payple_payAuth.html 입니다.
18/10/29 16:31
네 node 어플리케이션에서 이러쿵저러쿵 작업을 해서 최종적으로 html로 보여주는거라고 생각하시면 됩니다.
위의 express를 사용한 코드에서, res.header 로 헤더를 정하고 res.send 로 요청자에게 html 문서를 쏴주는데요. php에서는 <?php echo 'hello world' ?> 이런 코드를 node에서는 저렇게 하는거죠. 그래서 저 php로 된 html 파일을 유지할 수는 없습니다. res.send로 보내기 어려운 프론트엔드의 html 문서같은 경우에는 jade나 ejs 같은 뷰엔진을 쓰셔야합니다. 그러면 php랑 꽤 비슷해져요.
18/10/29 16:37
저도 Node를 개발해서 express와 pug, jade 등을 사용해서 어떤 말씀이신지 이해하고 있습니다.
그러나 결국 html 형태를 유지하지 못한다면 결제사에서 요청하는 ~~~.html에 대해선 요청에 응답하지 못하지 않나요? 결제사에서 요청하는 주소를 ~~~.html 파일이 아닌 특정 라우트로 처리해야할 것 같습니다.
18/10/29 16:35
코드를 뒤늦게 봤네요.
보통 pg사나 카드사에서 제공하는 코드들이 node는 잘 없어서 난처할때가 많죠. 저는 두가지방법으로 해결하는데요. 위의 널 포인터님이 말씀해주신것처럼 리버스프록시 서버를 두고 php를 따로 운용하던가, 혹은 간단한 코드라면 php 코드를 node의 코드로 포팅하는 거거든요. 그런데 보여주신 코드는 node에 대한 이해만 있으면 간단하게 포팅할수 있는 정도라 생각이 드네요
18/10/29 16:40
만약 결제사에서 domain/response.html 이렇게 응답받기를 원한다면,
app.post('/response.html', function () { ~~ }) 이렇게 요청하시면 될것 같습니다.
18/10/29 16:43
function 안에 php코드에 있는 curl 요청을 담아주면 해결될 것 같네요.
바쁘실텐데 자세하게 답변해주셔서 정말 감사합니다.
|