2013-06-20 62 views
0

我已經習慣了Apache和把配置項目在httpd.conf配置的NodeJS httpd.conf中

在哪裏這些類型的配置進去一個節點環境。例如,我想確保只接受GET,POST和PUT,並且不接受Head和Trace。這樣的配置在哪裏去?

其他的東西,如緩存控制和限制請求和響應大小。

回答

1

Node.js只是一個帶有系統API的JS框架。從技術上講,你可以在Node.js中重新實現Apache HTTP Server,模仿它的行爲和配置結構。但是,你會嗎?

我相信你正在使用Node.js的HTTP模塊。看看文檔:沒有辦法從文件中讀取配置。服務器使用http.createServer以編程方式創建。您提供了一個偵聽請求的回調。此回調提供了一個http.IncomingMessage參數(第一個參數),其中包含您需要的所有內容。

下面是一個例子:

// load the module 
var http = require('http'); 

// create the HTTP server 
var server = http.createServer(function(request, response) { 
    // use the "request" object to know everything about the request 
    console.log('got request!'); 

    // method ('GET', 'POST', 'PUT, etc.): 
    console.log('HTTP method: ' + request.method); 

    // URL: 
    console.log('HTTP URL: ' + request.url); 

    // headers: 
    console.log('HTTP headers follow:'); 
    console.log(request.headers); 

    // client address: 
    console.log('client address: ' + request.socket.address().address); 
}); 

// listen on port 8000 
server.listen(8000); 

如果你真的想要一個配置文件,你必須自己建立它。我建議創建一個JSON配置文件,因爲這可以使用JSON.parse()直接轉換爲JS對象。然後以編程方式使用您的配置對象來實現你想要的。

+0

所以基本上...... http模型沒有自己的配置。我應該使用創建服務器方法的回調,並在那裏進行檢查。 – majestiq

+0

所以基本上......如果我想確保傳入的請求端不大於說2k ...我需要檢查回調函數中的大小.. – majestiq

+0

是的。閱讀請求並獲取其大小。 – eepp