Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Node.js request object documentation? [closed]

This is a pretty straight forward question, but I haven't found anything on Google. I'm looking for documentation on the request parameter in Node.js's create server function, but I haven't been able to find anything.

http.createServer(function(request, response){   console.log(JSON.stringify(request)); }); 

Debugging with JSON.stringify() gives me an error, that the object is circular and the program stops. I've seen different things like request.url, or request.body, but is there a page documenting all of the request functions and parameters? It seems like it should be easy to find, I just can't seem to find it.

I tried it again, and it turns out just doing console.log(request) writes out all of the data from the request. Here it is just as a reference:

ondata: [Function],      _httpMessage:       { domain: null,         _events: [Object],         _maxListeners: 10,         output: [],         outputEncodings: [],         writable: true,         _last: false,         chunkedEncoding: false,         shouldKeepAlive: true,         useChunkedEncodingByDefault: true,         sendDate: true,         _hasBody: true,         _trailer: '',         finished: false,         _hangupClose: false,         socket: [Circular],         connection: [Circular] } },   connection:    { _connecting: false,      _handle:       { fd: null,         writeQueueSize: 0,         owner: [Circular],         onread: [Function: onread],         reading: true },      _readableState:       { highWaterMark: 16384,         buffer: [],         length: 0,         pipes: null,         pipesCount: 0,         flowing: false,         ended: false,         endEmitted: false,         reading: true,         calledRead: true,         sync: false,         needReadable: true,         emittedReadable: false,         readableListening: false,         objectMode: false,         defaultEncoding: 'utf8',         ranOut: false,         awaitDrain: 0,         readingMore: false,         decoder: null,         encoding: null },      readable: true,      domain: null,      _events:       { end: [Object],         finish: [Function: onSocketFinish],         _socketEnd: [Function: onSocketEnd],         drain: [Function: ondrain],         timeout: [Function],         error: [Function],         close: [Object] },      _maxListeners: 10,      _writableState:       { highWaterMark: 16384,         objectMode: false,         needDrain: false,         ending: false,         ended: false,         finished: false,         decodeStrings: false,         defaultEncoding: 'utf8',         length: 0,         writing: false,         sync: true,         bufferProcessing: false,         onwrite: [Function],         writecb: null,         writelen: 0,         buffer: [] },      writable: true,      allowHalfOpen: true,      onend: [Function],      destroyed: false,      errorEmitted: false,      bytesRead: 357,      _bytesDispatched: 0,      _pendingData: null,      _pendingEncoding: '',      server:       { domain: null,         _events: [Object],         _maxListeners: 10,         _connections: 1,         connections: [Getter/Setter],         _handle: [Object],         _usingSlaves: false,         _slaves: [],         allowHalfOpen: true,         httpAllowHalfOpen: false,         timeout: 120000,         _connectionKey: '4:0.0.0.0:1337' },      _idleTimeout: 120000,      _idleNext:       { _idleNext: [Circular],         _idlePrev: [Circular],         msecs: 120000,         ontimeout: [Function: listOnTimeout] },      _idlePrev:       { _idleNext: [Circular],         _idlePrev: [Circular],         msecs: 120000,         ontimeout: [Function: listOnTimeout] },      _idleStart: 1371952289619,      parser:       { _headers: [],         _url: '',         onHeaders: [Function: parserOnHeaders],         onHeadersComplete: [Function: parserOnHeadersComplete],         onBody: [Function: parserOnBody],         onMessageComplete: [Function: parserOnMessageComplete],         socket: [Circular],         incoming: [Circular],         maxHeaderPairs: 2000,         onIncoming: [Function] },      ondata: [Function],      _httpMessage:       { domain: null,         _events: [Object],         _maxListeners: 10,         output: [],         outputEncodings: [],         writable: true,         _last: false,         chunkedEncoding: false,         shouldKeepAlive: true,         useChunkedEncodingByDefault: true,         sendDate: true,         _hasBody: true,         _trailer: '',         finished: false,         _hangupClose: false,         socket: [Circular],         connection: [Circular] } },   httpVersion: '1.1',   complete: false,   headers:    { host: 'localhost:1337',      connection: 'keep-alive',      'cache-control': 'max-age=0',      accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',      'user-agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like  Gecko) Chrome/27.0.1453.116 Safari/537.36',      'accept-encoding': 'gzip,deflate,sdch',      'accept-language': 'en-US,en;q=0.8,ja;q=0.6' },   trailers: {},   _pendings: [],   _pendingIndex: 0,   url: '/',   method: 'GET',   statusCode: null,   client:    { _connecting: false,      _handle:       { fd: null,         writeQueueSize: 0,         owner: [Circular],         onread: [Function: onread],         reading: true },      _readableState:       { highWaterMark: 16384,         buffer: [],         length: 0,         pipes: null,         pipesCount: 0,         flowing: false,         ended: false,         endEmitted: false,         reading: true,         calledRead: true,         sync: false,         needReadable: true,         emittedReadable: false,         readableListening: false,         objectMode: false,         defaultEncoding: 'utf8',         ranOut: false,         awaitDrain: 0,         readingMore: false,         decoder: null,         encoding: null },      readable: true,      domain: null,      _events:       { end: [Object],         finish: [Function: onSocketFinish],         _socketEnd: [Function: onSocketEnd],         drain: [Function: ondrain],         timeout: [Function],         error: [Function],         close: [Object] },      _maxListeners: 10,      _writableState:       { highWaterMark: 16384,         objectMode: false,         needDrain: false,         ending: false,         ended: false,         finished: false,         decodeStrings: false,         defaultEncoding: 'utf8',         length: 0,         writing: false,         sync: true,         bufferProcessing: false,         onwrite: [Function],         writecb: null,         writelen: 0,         buffer: [] },      writable: true,      allowHalfOpen: true,      onend: [Function],      destroyed: false,      errorEmitted: false,      bytesRead: 357,      _bytesDispatched: 0,      _pendingData: null,      _pendingEncoding: '',      server:       { domain: null,         _events: [Object],         _maxListeners: 10,         _connections: 1,         connections: [Getter/Setter],         _handle: [Object],         _usingSlaves: false,         _slaves: [],         allowHalfOpen: true,         httpAllowHalfOpen: false,         timeout: 120000,         _connectionKey: '4:0.0.0.0:1337' },      _idleTimeout: 120000,      _idleNext:       { _idleNext: [Circular],         _idlePrev: [Circular],         msecs: 120000,         ontimeout: [Function: listOnTimeout] },      _idlePrev:       { _idleNext: [Circular],         _idlePrev: [Circular],         msecs: 120000,         ontimeout: [Function: listOnTimeout] },      _idleStart: 1371952289619,      parser:       { _headers: [],         _url: '',         onHeaders: [Function: parserOnHeaders],         onHeadersComplete: [Function: parserOnHeadersComplete],         onBody: [Function: parserOnBody],         onMessageComplete: [Function: parserOnMessageComplete],         socket: [Circular],         incoming: [Circular],         maxHeaderPairs: 2000,         onIncoming: [Function] },      ondata: [Function],      _httpMessage:       { domain: null,         _events: [Object],         _maxListeners: 10,         output: [],         outputEncodings: [],         writable: true,         _last: false,         chunkedEncoding: false,         shouldKeepAlive: true,         useChunkedEncodingByDefault: true,         sendDate: true,         _hasBody: true,         _trailer: '',         finished: false,         _hangupClose: false,         socket: [Circular],         connection: [Circular] } },   _consuming: false,   _dumped: false,   httpVersionMajor: 1,   httpVersionMinor: 1,   upgrade: false } 
like image 571
Benjamin Collins Avatar asked Jun 22 '13 14:06

Benjamin Collins


People also ask

What is 200 in writeHead in node JS?

writeHead(200) sends a response header to the request. The status code is a 3-digit HTTP status code, like 404. This method must only be called once on a message and it must be called before response. end() is called.

What is process CWD ()?

process. cwd() returns the current working directory, i.e. the directory from which you invoked the node command. __dirname returns the directory name of the directory containing the JavaScript source code file.

What is writeFileSync in node JS?

writeFileSync() to write data in files. The latter is a synchronous method for writing data in files. fs. writeFileSync() is a synchronous method, and synchronous code blocks the execution of program. Hence, it is preferred and good practice to use asynchronous methods in Node.

Why request is deprecated node?

Request isn't really deprecated. It's no longer considering new features or breaking changes, but it is still being maintained. It's safe to use for the foreseeable future, but how good an idea it is to use it is up to the developer.


2 Answers

I'm not sure if this is a correct reply as it seems straightforward to me, but did you have a look at http://nodejs.org/api/http.html#http_http_incomingmessage?

Request is instance of the above object. By the way, if you really want to see what's inside that object with "brute force," you should not parse it, as it will not be a JSON string at all, but instead do something like:

for (i in request) {   //Your code here } 

Hope it helps.

like image 94
Delio Avatar answered Sep 24 '22 12:09

Delio


Just to add on, as a relative newbie in Node.js, I find it confusing that each framework has its own implementation of a "request" object.

For example,

Express: http://expressjs.com/api.html#req.param

and

Hapi: http://spumko.github.io/resource/api/#request-object (just to note that the raw request object is still available in request.raw.req)

Some libraries assume the presence of Express' "req.param" method, and fail when used in non-Express projects.

like image 38
shaunlim Avatar answered Sep 23 '22 12:09

shaunlim