Mercurial > hg > nginx-site
changeset 2247:0f16ef9a8dbe
Created "nginx objects" section in reference.xml.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Mon, 24 Sep 2018 19:24:12 +0300 |
parents | 32ba43abf9cd |
children | bc22b979e989 |
files | xml/en/docs/njs/reference.xml |
diffstat | 1 files changed, 430 insertions(+), 426 deletions(-) [+] |
line wrap: on
line diff
--- a/xml/en/docs/njs/reference.xml Mon Sep 24 19:24:04 2018 +0300 +++ b/xml/en/docs/njs/reference.xml Mon Sep 24 19:24:12 2018 +0300 @@ -9,7 +9,7 @@ <article name="Reference" link="/en/docs/njs/reference.html" lang="en" - rev="9"> + rev="10"> <section id="summary"> @@ -21,6 +21,435 @@ </section> +<section id="http_stream" name="nginx objects"> + + +<section id="http" name="HTTP Request"> + +<para> +The HTTP request object is available only in the +<link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link> module. +All string properties of the object are <link id="string">byte strings</link>. + +<list type="tag"> + +<tag-name><literal>r.args{}</literal></tag-name> +<tag-desc> +request arguments object, read-only +</tag-desc> + +<tag-name><literal>r.error(<value>string</value>)</literal></tag-name> +<tag-desc> +writes a <literal>string</literal> to the error log +on the <literal>error</literal> level of logging +</tag-desc> + +<tag-name><literal>r.finish()</literal></tag-name> +<tag-desc> +finishes sending a response to the client +</tag-desc> + +<tag-name><literal>r.headersIn{}</literal></tag-name> +<tag-desc> +incoming headers object, read-only. +<para> +For example, the <literal>Foo</literal> header +can be accessed with the syntax <literal>headersIn.foo</literal> +or <literal>headersIn['Foo']</literal> +</para> +</tag-desc> + +<tag-name><literal>r.headersOut{}</literal></tag-name> +<tag-desc> +outgoing headers object, writable. +<para> +For example, the <literal>Foo</literal> header +can be accessed with the syntax <literal>headersOut.foo</literal> +or <literal>headersOut['Foo']</literal> +</para> +</tag-desc> + +<tag-name><literal>r.httpVersion</literal></tag-name> +<tag-desc> +HTTP version, read-only +</tag-desc> + +<tag-name><literal>r.log(<value>string</value>)</literal></tag-name> +<tag-desc> +writes a <literal>string</literal> to the error log +on the <literal>info</literal> level of logging +</tag-desc> + +<tag-name id="r_internal_redirect"><literal>r.internalRedirect(<value>uri</value>)</literal></tag-name> +<tag-desc> +performs an internal redirect to the specified <literal>uri</literal>. +If the uri starts with the “<literal>@</literal>” prefix, +it is considered a named location. +</tag-desc> + +<tag-name><literal>r.method</literal></tag-name> +<tag-desc> +HTTP method, read-only +</tag-desc> + +<tag-name><literal>r.parent</literal></tag-name> +<tag-desc> +references the parent request object +</tag-desc> + +<tag-name><literal>r.remoteAddress</literal></tag-name> +<tag-desc> +client address, read-only +</tag-desc> + +<tag-name><literal>r.requestBody</literal></tag-name> +<tag-desc> +holds the request body, read-only +</tag-desc> + +<tag-name><literal>r.responseBody</literal></tag-name> +<tag-desc> +holds the <link id="subrequest">subrequest</link> response body, read-only. +The size of <literal>r.responseBody</literal> is limited by the +<link doc="../http/ngx_http_core_module.xml" id="subrequest_output_buffer_size"/> +directive. +</tag-desc> + +<tag-name><literal>r.return(status[, string])</literal></tag-name> +<tag-desc> +sends the entire response +with the specified <literal>status</literal> to the client +<para> +It is possible to specify either a redirect URL +(for codes 301, 302, 303, 307, and 308) +or the response body text (for other codes) as the second argument +</para> +</tag-desc> + +<tag-name><literal>r.send(<value>string</value>)</literal></tag-name> +<tag-desc> +sends a part of the response body to the client +</tag-desc> + +<tag-name><literal>r.sendHeader()</literal></tag-name> +<tag-desc> +sends the HTTP headers to the client +</tag-desc> + +<tag-name><literal>r.status</literal></tag-name> +<tag-desc> +status, writable +</tag-desc> + +<tag-name><literal>r.variables{}</literal></tag-name> +<tag-desc> +nginx variables object, read-only +</tag-desc> + +<tag-name><literal>r.warn(<value>string</value>)</literal></tag-name> +<tag-desc> +writes a <literal>string</literal> to the error log +on the <literal>warning</literal> level of logging +</tag-desc> + +<tag-name><literal>r.uri</literal></tag-name> +<tag-desc> +current URI, read-only +</tag-desc> + +<tag-name id="subrequest"><literal>r.subrequest(<value>uri</value>[, +<value>options</value>[, <value>callback</value>]])</literal></tag-name> +<tag-desc> +creates a subrequest with the given <literal>uri</literal> and +<literal>options</literal>, and installs +an optional completion <literal>callback</literal>. + +<para> +If <literal>options</literal> is a string, then it +holds the subrequest arguments string. +Otherwise, <literal>options</literal> is expected to be +an object with the following keys: +<list type="tag"> +<tag-name><literal>args</literal></tag-name> +<tag-desc> +arguments string +</tag-desc> +<tag-name><literal>body</literal></tag-name> +<tag-desc> +request body +</tag-desc> + +<tag-name><literal>method</literal></tag-name> +<tag-desc> +HTTP method +</tag-desc> + +</list> +</para> + +<para> +The completion <literal>callback</literal> receives +a subrequest response object with methods and properties +identical to the parent request object. +</para> +</tag-desc> + +</list> +</para> + +</section> + + +<section id="stream" name="Stream Session"> + +<para> +The stream session object is available only in the +<link doc="../stream/ngx_stream_js_module.xml">ngx_stream_js_module</link> +module. +All string properties of the object are <link id="string">byte strings</link>. +</para> + +<para> +<note> +Prior to njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +the stream session object had some properties which are currently +<link id="stream_obsolete">removed</link>. +</note> +</para> + +<para> +<list type="tag"> + +<tag-name id="s_allow"><literal>s.allow()</literal></tag-name> +<tag-desc> +successfully finalizes the phase handler +(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>) +</tag-desc> + +<tag-name id="s_decline"><literal>s.decline()</literal></tag-name> +<tag-desc> +finalizes the phase handler and passes control to the next handler +(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>) +</tag-desc> + +<tag-name id="s_deny"><literal>s.deny()</literal></tag-name> +<tag-desc> +finalizes the phase handler with the access error code +(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>) +</tag-desc> + +<tag-name id="s_done"><literal>s.done</literal>(<value>[code]</value>)</tag-name> +<tag-desc> +successfully finalizes the current phase handler +or finalizes it with the specified numeric code +(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>). +</tag-desc> + +<tag-name><literal>s.error(<value>string</value>)</literal></tag-name> +<tag-desc> +writes a sent <literal>string</literal> to the error log +on the <literal>error</literal> level of logging +</tag-desc> + +<tag-name><literal>s.log(<value>string</value>)</literal></tag-name> +<tag-desc> +writes a sent <value>string</value> to the error log +on the <literal>info</literal> level of logging +</tag-desc> + +<tag-name id="s_off"><literal>s.off(<value>eventName</value>)</literal></tag-name> +<tag-desc> +unregisters the callback set by the <link id="s_on">s.on()</link> method +(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>) +</tag-desc> + +<tag-name id="s_on"><literal>s.on(<value>event</value>, +<value>callback</value>)</literal></tag-name> +<tag-desc> +registers a <literal>callback</literal> for the specified <literal>event</literal> +(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>). + +<para> +An <literal>event</literal> may be one of the following strings: +<list type="tag"> +<tag-name><literal>upload</literal></tag-name> +<tag-desc> +new data from a client +</tag-desc> + +<tag-name><literal>download</literal></tag-name> +<tag-desc> +new data to a client +</tag-desc> + +</list> +</para> + +<para> +The completion callback has the following prototype: +<literal>callback(data, flags)</literal>, where +<literal>data</literal> is string, +<literal>flags</literal> is an object +with the following properties: +<list type="tag"> +<tag-name id="s_on_callback_last"><literal>last</literal></tag-name> +<tag-desc> +a boolean value, true if data is a last buffer. +</tag-desc> + +</list> +</para> +</tag-desc> + +<tag-name><literal>s.remoteAddress</literal></tag-name> +<tag-desc> +client address, read-only +</tag-desc> + +<tag-name id="s_send"><literal>s.send(<value>data</value>[, +<value>options</value>])</literal></tag-name> +<tag-desc> +sends the data to the client +(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>). +The <literal>options</literal> is an object used +to override nginx buffer flags derived from an incoming data chunk buffer. +The flags can be overriden with the following flags: +<para> +<list type="tag"> + +<tag-name><literal>last</literal></tag-name> +<tag-desc> +boolean, true if the buffer is the last buffer +</tag-desc> + +<tag-name><literal>flush</literal></tag-name> +<tag-desc> +boolean, true if the buffer should have the <literal>flush</literal> flag +</tag-desc> +</list> +</para> +The method can be called multiple times per callback invocation. +</tag-desc> + +<tag-name><literal>s.variables{}</literal></tag-name> +<tag-desc> +nginx variables object, read-only +</tag-desc> + +<tag-name><literal>s.warn(<value>string</value>)</literal></tag-name> +<tag-desc> +writes a sent <literal>string</literal> to the error log +on the <literal>warning</literal> level of logging +</tag-desc> + +</list> +</para> + + +<section id="stream_obsolete" name="Obsolete properties"> + +<para> +These properties have been removed +in njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link> +and are not backward compatible with the existing njs code. +</para> + +<para> +<list type="tag"> + +<tag-name id="s_abort"><literal>s.ABORT</literal></tag-name> +<tag-desc> +the <literal>ABORT</literal> return code +<note> +Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +the <link id="s_deny">s.deny()</link> method should be used instead. +</note> +</tag-desc> + +<tag-name><literal>s.AGAIN</literal></tag-name> +<tag-desc> +the <literal>AGAIN</literal> return code +<note> +Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +the corresponding behavior is achieved if no +<link id="s_allow">s.allow()</link>, +<link id="s_deny">s.deny()</link>, +<link id="s_decline">s.decline()</link>, +<link id="s_done">s.done()</link> +is invoked and a callback is registered. +</note> +</tag-desc> + +<tag-name id="s_buffer"><literal>s.buffer</literal></tag-name> +<tag-desc> +the current buffer, writable +<note> +Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +the <link id="s_send">s.send()</link> method should be used for writing. +For reading, the current buffer is available as the first argument of the +<literal>event</literal> callback. +</note> +</tag-desc> + +<tag-name><literal>s.DECLINED</literal></tag-name> +<tag-desc> +the <literal>DECLINED</literal> return code +<note> +Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +the <link id="s_decline">s.decline()</link> method should be used instead. +</note> +</tag-desc> + +<tag-name><literal>s.eof</literal></tag-name> +<tag-desc> +a boolean read-only property, true if the current buffer is the last buffer +<note> +Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +the <link id="s_on_callback_last">flags.last</link> property +should be used instead. +</note> +</tag-desc> + +<tag-name><literal>s.ERROR</literal></tag-name> +<tag-desc> +the <literal>ERROR</literal> return code +<note> +Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +an appropriate exception can be thrown to report an error. +</note> +</tag-desc> + +<tag-name><literal>s.fromUpstream</literal></tag-name> +<tag-desc> +a boolean read-only property, +true if the current buffer is from the upstream server to the client +<note> +Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +a corresponding <link id="s_on">event</link> +(<literal>upload</literal> or <literal>download</literal>) +should be used to handle data to or from client. +</note> +</tag-desc> + +<tag-name id="s_ok"><literal>s.OK</literal></tag-name> +<tag-desc> +the <literal>OK</literal> return code +<note> +Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, +the <link id="s_allow">s.allow()</link> method should be used instead. +</note> +</tag-desc> + +</list> +</para> + +</section> + +</section> + +</section> + + <section id="core" name="Core"> @@ -853,429 +1282,4 @@ </section> - -<section id="http" name="HTTP Request"> - -<para> -The HTTP request object is available only in the -<link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link> module. -All string properties of the object are <link id="string">byte strings</link>. - -<list type="tag"> - -<tag-name><literal>r.args{}</literal></tag-name> -<tag-desc> -request arguments object, read-only -</tag-desc> - -<tag-name><literal>r.error(<value>string</value>)</literal></tag-name> -<tag-desc> -writes a <literal>string</literal> to the error log -on the <literal>error</literal> level of logging -</tag-desc> - -<tag-name><literal>r.finish()</literal></tag-name> -<tag-desc> -finishes sending a response to the client -</tag-desc> - -<tag-name><literal>r.headersIn{}</literal></tag-name> -<tag-desc> -incoming headers object, read-only. -<para> -For example, the <literal>Foo</literal> header -can be accessed with the syntax <literal>headersIn.foo</literal> -or <literal>headersIn['Foo']</literal> -</para> -</tag-desc> - -<tag-name><literal>r.headersOut{}</literal></tag-name> -<tag-desc> -outgoing headers object, writable. -<para> -For example, the <literal>Foo</literal> header -can be accessed with the syntax <literal>headersOut.foo</literal> -or <literal>headersOut['Foo']</literal> -</para> -</tag-desc> - -<tag-name><literal>r.httpVersion</literal></tag-name> -<tag-desc> -HTTP version, read-only -</tag-desc> - -<tag-name><literal>r.log(<value>string</value>)</literal></tag-name> -<tag-desc> -writes a <literal>string</literal> to the error log -on the <literal>info</literal> level of logging -</tag-desc> - -<tag-name id="r_internal_redirect"><literal>r.internalRedirect(<value>uri</value>)</literal></tag-name> -<tag-desc> -performs an internal redirect to the specified <literal>uri</literal>. -If the uri starts with the “<literal>@</literal>” prefix, -it is considered a named location. -</tag-desc> - -<tag-name><literal>r.method</literal></tag-name> -<tag-desc> -HTTP method, read-only -</tag-desc> - -<tag-name><literal>r.parent</literal></tag-name> -<tag-desc> -references the parent request object -</tag-desc> - -<tag-name><literal>r.remoteAddress</literal></tag-name> -<tag-desc> -client address, read-only -</tag-desc> - -<tag-name><literal>r.requestBody</literal></tag-name> -<tag-desc> -holds the request body, read-only -</tag-desc> - -<tag-name><literal>r.responseBody</literal></tag-name> -<tag-desc> -holds the <link id="subrequest">subrequest</link> response body, read-only. -The size of <literal>r.responseBody</literal> is limited by the -<link doc="../http/ngx_http_core_module.xml" id="subrequest_output_buffer_size"/> -directive. -</tag-desc> - -<tag-name><literal>r.return(status[, string])</literal></tag-name> -<tag-desc> -sends the entire response -with the specified <literal>status</literal> to the client -<para> -It is possible to specify either a redirect URL -(for codes 301, 302, 303, 307, and 308) -or the response body text (for other codes) as the second argument -</para> -</tag-desc> - -<tag-name><literal>r.send(<value>string</value>)</literal></tag-name> -<tag-desc> -sends a part of the response body to the client -</tag-desc> - -<tag-name><literal>r.sendHeader()</literal></tag-name> -<tag-desc> -sends the HTTP headers to the client -</tag-desc> - -<tag-name><literal>r.status</literal></tag-name> -<tag-desc> -status, writable -</tag-desc> - -<tag-name><literal>r.variables{}</literal></tag-name> -<tag-desc> -nginx variables object, read-only -</tag-desc> - -<tag-name><literal>r.warn(<value>string</value>)</literal></tag-name> -<tag-desc> -writes a <literal>string</literal> to the error log -on the <literal>warning</literal> level of logging -</tag-desc> - -<tag-name><literal>r.uri</literal></tag-name> -<tag-desc> -current URI, read-only -</tag-desc> - -<tag-name id="subrequest"><literal>r.subrequest(<value>uri</value>[, -<value>options</value>[, <value>callback</value>]])</literal></tag-name> -<tag-desc> -creates a subrequest with the given <literal>uri</literal> and -<literal>options</literal>, and installs -an optional completion <literal>callback</literal>. - -<para> -If <literal>options</literal> is a string, then it -holds the subrequest arguments string. -Otherwise, <literal>options</literal> is expected to be -an object with the following keys: -<list type="tag"> -<tag-name><literal>args</literal></tag-name> -<tag-desc> -arguments string -</tag-desc> -<tag-name><literal>body</literal></tag-name> -<tag-desc> -request body -</tag-desc> - -<tag-name><literal>method</literal></tag-name> -<tag-desc> -HTTP method -</tag-desc> - -</list> -</para> - -<para> -The completion <literal>callback</literal> receives -a subrequest response object with methods and properties -identical to the parent request object. -</para> -</tag-desc> - -</list> -</para> - -</section> - - -<section id="stream" name="Stream Session"> - -<para> -The stream session object is available only in the -<link doc="../stream/ngx_stream_js_module.xml">ngx_stream_js_module</link> -module. -All string properties of the object are <link id="string">byte strings</link>. -</para> - -<para> -<note> -Prior to njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -the stream session object had some properties which are currently -<link id="stream_obsolete">removed</link>. -</note> -</para> - -<para> -<list type="tag"> - -<tag-name id="s_allow"><literal>s.allow()</literal></tag-name> -<tag-desc> -successfully finalizes the phase handler -(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>) -</tag-desc> - -<tag-name id="s_decline"><literal>s.decline()</literal></tag-name> -<tag-desc> -finalizes the phase handler and passes control to the next handler -(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>) -</tag-desc> - -<tag-name id="s_deny"><literal>s.deny()</literal></tag-name> -<tag-desc> -finalizes the phase handler with the access error code -(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>) -</tag-desc> - -<tag-name id="s_done"><literal>s.done</literal>(<value>[code]</value>)</tag-name> -<tag-desc> -successfully finalizes the current phase handler -or finalizes it with the specified numeric code -(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>). -</tag-desc> - -<tag-name><literal>s.error(<value>string</value>)</literal></tag-name> -<tag-desc> -writes a sent <literal>string</literal> to the error log -on the <literal>error</literal> level of logging -</tag-desc> - -<tag-name><literal>s.log(<value>string</value>)</literal></tag-name> -<tag-desc> -writes a sent <value>string</value> to the error log -on the <literal>info</literal> level of logging -</tag-desc> - -<tag-name id="s_off"><literal>s.off(<value>eventName</value>)</literal></tag-name> -<tag-desc> -unregisters the callback set by the <link id="s_on">s.on()</link> method -(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>) -</tag-desc> - -<tag-name id="s_on"><literal>s.on(<value>event</value>, -<value>callback</value>)</literal></tag-name> -<tag-desc> -registers a <literal>callback</literal> for the specified <literal>event</literal> -(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>). - -<para> -An <literal>event</literal> may be one of the following strings: -<list type="tag"> -<tag-name><literal>upload</literal></tag-name> -<tag-desc> -new data from a client -</tag-desc> - -<tag-name><literal>download</literal></tag-name> -<tag-desc> -new data to a client -</tag-desc> - -</list> -</para> - -<para> -The completion callback has the following prototype: -<literal>callback(data, flags)</literal>, where -<literal>data</literal> is string, -<literal>flags</literal> is an object -with the following properties: -<list type="tag"> -<tag-name id="s_on_callback_last"><literal>last</literal></tag-name> -<tag-desc> -a boolean value, true if data is a last buffer. -</tag-desc> - -</list> -</para> -</tag-desc> - -<tag-name><literal>s.remoteAddress</literal></tag-name> -<tag-desc> -client address, read-only -</tag-desc> - -<tag-name id="s_send"><literal>s.send(<value>data</value>[, -<value>options</value>])</literal></tag-name> -<tag-desc> -sends the data to the client -(<link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>). -The <literal>options</literal> is an object used -to override nginx buffer flags derived from an incoming data chunk buffer. -The flags can be overriden with the following flags: -<para> -<list type="tag"> - -<tag-name><literal>last</literal></tag-name> -<tag-desc> -boolean, true if the buffer is the last buffer -</tag-desc> - -<tag-name><literal>flush</literal></tag-name> -<tag-desc> -boolean, true if the buffer should have the <literal>flush</literal> flag -</tag-desc> -</list> -</para> -The method can be called multiple times per callback invocation. -</tag-desc> - -<tag-name><literal>s.variables{}</literal></tag-name> -<tag-desc> -nginx variables object, read-only -</tag-desc> - -<tag-name><literal>s.warn(<value>string</value>)</literal></tag-name> -<tag-desc> -writes a sent <literal>string</literal> to the error log -on the <literal>warning</literal> level of logging -</tag-desc> - -</list> -</para> - - -<section id="stream_obsolete" name="Obsolete properties"> - -<para> -These properties have been removed -in njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link> -and are not backward compatible with the existing njs code. -</para> - -<para> -<list type="tag"> - -<tag-name id="s_abort"><literal>s.ABORT</literal></tag-name> -<tag-desc> -the <literal>ABORT</literal> return code -<note> -Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -the <link id="s_deny">s.deny()</link> method should be used instead. -</note> -</tag-desc> - -<tag-name><literal>s.AGAIN</literal></tag-name> -<tag-desc> -the <literal>AGAIN</literal> return code -<note> -Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -the corresponding behavior is achieved if no -<link id="s_allow">s.allow()</link>, -<link id="s_deny">s.deny()</link>, -<link id="s_decline">s.decline()</link>, -<link id="s_done">s.done()</link> -is invoked and a callback is registered. -</note> -</tag-desc> - -<tag-name id="s_buffer"><literal>s.buffer</literal></tag-name> -<tag-desc> -the current buffer, writable -<note> -Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -the <link id="s_send">s.send()</link> method should be used for writing. -For reading, the current buffer is available as the first argument of the -<literal>event</literal> callback. -</note> -</tag-desc> - -<tag-name><literal>s.DECLINED</literal></tag-name> -<tag-desc> -the <literal>DECLINED</literal> return code -<note> -Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -the <link id="s_decline">s.decline()</link> method should be used instead. -</note> -</tag-desc> - -<tag-name><literal>s.eof</literal></tag-name> -<tag-desc> -a boolean read-only property, true if the current buffer is the last buffer -<note> -Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -the <link id="s_on_callback_last">flags.last</link> property -should be used instead. -</note> -</tag-desc> - -<tag-name><literal>s.ERROR</literal></tag-name> -<tag-desc> -the <literal>ERROR</literal> return code -<note> -Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -an appropriate exception can be thrown to report an error. -</note> -</tag-desc> - -<tag-name><literal>s.fromUpstream</literal></tag-name> -<tag-desc> -a boolean read-only property, -true if the current buffer is from the upstream server to the client -<note> -Starting from <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -a corresponding <link id="s_on">event</link> -(<literal>upload</literal> or <literal>download</literal>) -should be used to handle data to or from client. -</note> -</tag-desc> - -<tag-name id="s_ok"><literal>s.OK</literal></tag-name> -<tag-desc> -the <literal>OK</literal> return code -<note> -Starting from njs <link doc="../njs/changes.xml" id="njs0.2.4">0.2.4</link>, -the <link id="s_allow">s.allow()</link> method should be used instead. -</note> -</tag-desc> - -</list> -</para> - -</section> - -</section> - - </article>