2013-08-07 42 views
1

我有一個node.js應用程序,它只是一個庫。不,我想爲該應用程序提供不同的端點。具有多個端點的Node.js應用程序

我想有通過快遞 網頁我想有一個管理員的命令行 (以及未來可能的REST 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與消息,並通過Telnet REPL到8082

你自然可以選擇重用方法/配置,但是這是你的選擇,沒有什麼由Node強制執行。

+0

謝謝你的回覆。這對於web和api會很有用。但是,它如何尋找命令行界面,因爲我不認爲它會聽http(?)。我如何使用commander.js,REPL或其他方式與現有應用程序進行交互。 – silverfighter

+0

@silverfighter更新了端口8082上的REPL而不是另一個HTTP端口。 –

相關問題