nodejs configuration httpd.conf

I'm used to apache and putting configuration items in httpd.conf

Where do these types of configurations go in a node environment. For example, I want to make sure that only GET, POST, and PUT are accepted and Head and Trace are not accepted. Where does a config like that go?

Additional things like Cache-Control and limiting request and response sizes.

Node.js is just a JS framework with a system API. Technically, you could reimplement Apache HTTP Server in Node.js, mimicking its behaviour and its configuration structure. But would you?

I believe you are using Node.js' HTTP module. Look at the docs: there's no way to read configuration from a file. The server is programmatically created using http.createServer. You provide a callback that listens to requests. This callback provides an http.IncomingMessage parameter (first parameter) which contains everything you need.

Here's an example:

// 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);

If you really want a configuration file, you will have to forge it yourself. I suggest creating a JSON configuration file as this can be turned directly into a JS object using JSON.parse(). Then just use your configuration object programmatically to achieve what you want.