floodesh-lib
Version:
core library for floodesh, which contains core request, response and context class, also used for flowesh
138 lines (84 loc) • 2.59 kB
Markdown
# floodesh-lib
floodesh-lib is middleware based web spider library written with Nodejs.
# Install
$ npm install floodesh-lib
# Context
A context instance is a kind of [Finite-State Machine](https://en.wikipedia.org/wiki/Finite-state_machine) implemented by `Generators` which is [ECMAScript 6](http://es6-features.org/#GeneratorFunctionIteratorProtocol) feature. By context, we can access almost all fields in `response` and `request`, like:
```javascript
worker.responsemw.use( (ctx,next) => {
ctx.content = ctx.body.toString(); // totally do not care about the body
return next();
})
```
## Request
### ctx.querystring
* String
Get querystring.
### ctx.idempotent
* Boolean
Check if the request is idempotent.
### ctx.search
* String
Get the search string. It includes the leading "?" compare to querystring.
### ctx.method
* String
Get request method.
### ctx.query
* Object
Get parsed query-string.
### ctx.path
* String
Get the request pathname
### ctx.url
* String
Return request url, the same as __ctx.href__.
### ctx.origin
* String
Get the origin of URL, for instance, "https://www.google.com".
### ctx.protocol
* String
Return the protocol string "http" or "https".
### ctx.host
* String, hostname:port
Parse the "Host" header field host and support X-Forwarded-Host when a proxy is enabled.
### ctx.hostname
* String
Parse the "Host" header field hostname and support X-Forwarded-Host when a proxy is enabled.
### ctx.secure
* Boolean
Check if protocol is https.
## Response
### ctx.status
* Number
Get status code from response.
### ctx.message
* String
Get status message from response.
### ctx.body
* Buffer
Get the response body in Buffer.
### ctx.length
* Number
Get length of response body.
### ctx.type
* String
Get the response mime type, for instance, "text/html"
### ctx.lastModifieds
* Date
Get the Last-Modified date in Date form, if it exists.
### ctx.etag
* String
Get the ETag of a response.
### ctx.header
* Object
Return the response header.
### ctx.contentType
* String
### ctx.get(key)
* `key` String
* Return: String
Get value by key in response headers
### ctx.is(types)
* `type`s String|Array
* Return: String|false|null
Check if the incoming response contains the "Content-Type" header field, and it contains any of the give mime `type`s.If there is no response body, `null` is returned.If there is no content type, `false` is returned.Otherwise, it returns the first `type` that matches.