2013-08-07 4 views
1

node.js 앱은 단지 라이브러리입니다. 아니요. 해당 애플리케이션에 대해 다른 엔드 포인트를 제공하고 싶습니다.Node.js 다중 끝점을 사용하는 응용 프로그램

내가 표현 를 통해 웹 페이지를하고 싶습니다 내가 관리자 명령 줄 하고 싶은 (그리고 미래에 대한 어쩌면 나머지 API를.) 그래서

어떻게 구조 Node.js를 응용 프로그램에 대한 것 웹 사이트와 관리자 명령 행 인터페이스를 노출합니다. 관리자는 동시에 명령 줄을 통해 해당 응용 프로그램과도 상호 작용할 수 있습니다. 요점은 실행중인 프로세스에 연결하고 프로세스와 상호 작용하는 것입니다 (프로덕션 저장).

답변

1

노드가 비동기이기 때문에 여러 엔드 포인트를 동시에 청취하는 데 문제가 없습니다. 이 프로그램의 구조는 기본적으로 두 개의 서버 (HTTP/Express/Socket/...)를 별도로 구성하고 두 서버 모두에서 listen()을 호출하는 것입니다. 신속하고 더러운 예로서;

var http = require('http'); 
var net = require('net'); 
var repl = require('repl'); 

http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World!\n'); 
}).listen(8081); 

net.createServer(function (socket) { 
    repl.start({ 
    prompt: "node> ", input: socket, output: socket 
    }).on('exit', function() { 
    socket.end(); 
    }); 
}).listen(8082); 

... 포트에서 수신 대기합니다 8081/HTTP 메시지, 그리고 당신은 자연적 방법/구성을 다시 사용하도록 선택할 수 8082

에 텔넷을 통해 REPL,하지만 당신의 선택이 아니라 아무것도의와 노드에 의해 시행됩니다.

+0

답장을 보내 주셔서 감사합니다. 이것은 웹 및 API에 유용합니다. 하지만 http (?)를 듣지 않을 것이기 때문에 명령 행 인터페이스를 어떻게 찾습니까? Commander.js, REPL 등을 사용하여 기존 앱과 상호 작용하는 방법은 무엇입니까? – silverfighter

+0

@silverfighter 다른 HTTP 포트 대신 포트 8082에서 REPL로 업데이트되었습니다. –

관련 문제