Node.js请求对象文档?
这是一个非常简单的问题,但我没有在Google上find任何东西。 我正在寻找在Node.js的创build服务器function请求参数的文档,但我一直无法find任何东西。
http.createServer(function(request, response){ console.log(JSON.stringify(request)); });
用JSON.stringify()debugging给我一个错误,对象是循环的,程序停止。 我见过不同的东西,如request.url
或request.body
,但有没有一个页面logging所有的请求函数和参数? 似乎应该很容易find,我似乎无法find它。
我再次尝试,结果只是做console.log(request)
写出console.log(request)
所有数据。 这里只是作为参考:
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 }
我不确定这是否是正确的答复,因为看起来很简单,但是你看看http://nodejs.org/api/http.html#http_http_incomingmessage ?
请求是上述对象的实例。 顺便说一句,如果你真的想用“蛮力”来看看那个对象里面有什么,那么你就不应该parsing它,因为它根本不是一个JSONstring,而是做一些事情:
for (i in request) { //Your code here }
希望能帮助到你。
仅仅作为Node.js的一个新手,我发现每个框架都有自己的“请求”对象的实现。
例如,
快递: http : //expressjs.com/api.html#req.param
和
Hapi: http : //spumko.github.io/resource/api/#request-object (只是要注意原始请求对象在request.raw.req中仍然可用)
某些库假定存在Express'“req.param”方法,并且在非Express项目中使用时会失败。
我同意Delio,Request对象是由http.ClientRequest创build的IncomingMessage对象的types。