Search query

Place + in front of a word which must be found and - in front of a word which must not be found. Put a list of words separated by | into brackets if only one of the words must be found. Use * as a wildcard for partial matches.
Use * as a wildcard for partial matches.

Search options

Select the forum or forums you wish to search in. Subforums are searched automatically if you do not disable “search subforums“ below.

characters of posts
 
EDT

res.locals

namevalue
title <meta charset="UTF-8" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <title>Search - WPS Office Community</title> <link rel="alternate" type="application/atom+xml" title="Feed - wps-community.org" href="http://wps-community.org/forum/feed.php" /><link rel="alternate" type="application/atom+xml" title="Feed - New Topics" href="http://wps-community.org/forum/feed.php?mode=topics" /> <!-- phpBB style name: ComBoot Free Based on style: prosilver (this is the default phpBB3 style) Original author: Tom Beddard ( http://www.subBlue.com/ ) Modified by: Florian Gareis (http://www.florian-gareis.de) Version: 1.0 --> <script type="text/javascript"> // <![CDATA[ var jump_page = 'Enter the page number you wish to go to:'; var on_page = ''; var per_page = ''; var base_url = ''; var style_cookie = 'phpBBstyle'; var style_cookie_settings = '; path=/'; var onload_functions = new Array(); var onunload_functions = new Array(); /** * Find a member */ function find_username(url) { popup(url, 760, 570, '_usersearch'); return false; } /** * New function for handling multiple calls to window.onload and window.unload by pentapenguin */ window.onload = function() { for (var i = 0; i < onload_functions.length; i++) { eval(onload_functions[i]); } }; window.onunload = function() { for (var i = 0; i < onunload_functions.length; i++) { eval(onunload_functions[i]); } }; // ]]> </script> <script type="text/javascript" src="./styles/wps/template/styleswitcher.js"></script> <script type="text/javascript" src="./styles/wps/template/forum_fn.js"></script> <link href="./styles/wps/theme/print.css" rel="stylesheet" type="text/css" media="print" title="printonly" /> <!--link href="./style.php?id=2&amp;lang=en&amp;sid=0cb1cccbf652eb67310cd2d51f7b2668" rel="stylesheet" type="text/css" media="screen, projection" /--> <link href="./styles/wps/theme/comboot/comboot.css" rel="stylesheet"/> <link href="./styles/wps/theme/comboot/colorpicker.min.css" rel="stylesheet"/> <link href="./styles/wps/theme/comboot/lightbox.css" rel="stylesheet"/> <link href="./styles/wps/theme/comboot/select.min.css" rel="stylesheet"/> <link href="./styles/wps/theme/comboot/syntax-highlighting.css" rel="stylesheet"/> <script src="./styles/wps/theme/comboot/jquery.min.js" type="text/javascript"></script> <script src="./styles/prosilver/template/editor.js" type="text/javascript" ></script> <script src="./styles/wps/theme/comboot/angular.min.js" type="text/javascript"></script> <script src="./styles/wps/theme/comboot/progressbar.min.js" type="text/javascript"></script> <script src="./styles/wps/theme/comboot/colorpicker.min.js" type="text/javascript"></script> <script src="./styles/wps/theme/comboot/lightbox.min.js" type="text/javascript"></script> <script src="./styles/wps/theme/comboot/select.min.js" type="text/javascript"></script> <script src="./styles/wps/theme/comboot/syntax-highlighting.js" type="text/javascript"></script> <script src="./styles/wps/theme/comboot/comboot.js" type="text/javascript"></script>
body <div class="row" style="margin-top: 20px"> <div class="col-md-9"> <div class="btn-group btn-breadcrumb"> <a href="./index.php?sid=0cb1cccbf652eb67310cd2d51f7b2668" accesskey="h" class="btn btn-primary" title="Board index"><i class="glyphicon glyphicon-home"></i></a> </div> </div> <div class="col-md-3 text-right"> <a href="./ucp.php?mode=login&amp;sid=0cb1cccbf652eb67310cd2d51f7b2668" class="btn btn-sm btn-default" role="button" title="Login" accesskey="x"> Login as: <img src="./styles/wps/theme/images/google.svg" style="height: 1.4em;"/> </a> </div> </div> <script type="text/javascript"> // <![CDATA[ onload_functions.push('document.getElementById("keywords").focus();'); // ]]> </script> <div class="page-header"> <h2 class="solo">Search</h2> </div> <form method="get" action="./search.php"> <div class="form-group"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Search query</h3> </div> <div class="panel-body"> <fieldset> <div class="form-horizontal"> <div class="form-group"> <label class="control-label col-md-3" for="keywords">Search for keywords:</label> <div class="col-md-9"> <input type="text" class="form-control" name="keywords" id="keywords" size="40" title="Search for keywords" /> <div class="radio"><label for="terms1"><input type="radio" name="terms" id="terms1" value="all" checked="checked" /> Search for all terms or use query as entered</label></div> <div class="radio"><label for="terms2"><input type="radio" name="terms" id="terms2" value="any" /> Search for any terms</label></div> <span class="help-block">Place <strong>+</strong> in front of a word which must be found and <strong>-</strong> in front of a word which must not be found. Put a list of words separated by <strong>|</strong> into brackets if only one of the words must be found. Use * as a wildcard for partial matches.</span> </div> </div> <div class="form-group"> <label class="control-label col-md-3" for="author">Search for author:</label> <div class="col-md-9"> <input type="text" class="form-control" name="author" id="author" size="40" title="Search for author" /> <span class="help-block">Use * as a wildcard for partial matches.</span> </div> </div> </fieldset> </div> </div> </div> <div class="form-group"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Search options</h3> </div> <div class="panel-body"> <fieldset> <div class="form-horizontal"> <div class="form-group"> <label class="control-label col-md-3" for="search_forum">Search in forums:</label> <div class="col-md-9"> <select name="fid[]" id="search_forum" multiple="multiple" size="8" title="Search in forums"><option value="26">Announcements</option><option value="28">&nbsp; &nbsp;Announcements</option><option value="3">Discussions and Feedbacks</option><option value="4">&nbsp; &nbsp;KSO/WPS for Linux</option><option value="29">&nbsp; &nbsp;Development</option><option value="16">&nbsp; &nbsp;Free Postings</option><option value="7">Tracking</option><option value="10">&nbsp; &nbsp;Bug Tracking</option><option value="34">&nbsp; &nbsp;&nbsp; &nbsp;Accepted(We will fix it as soon as possible)</option><option value="30">&nbsp; &nbsp;&nbsp; &nbsp;Solved(will be released in next version or patch)</option><option value="31">&nbsp; &nbsp;&nbsp; &nbsp;Closed(Confirmed or not a problem)</option><option value="32">&nbsp; &nbsp;Feature Request</option><option value="33">&nbsp; &nbsp;&nbsp; &nbsp;Accepted</option><option value="35">&nbsp; &nbsp;&nbsp; &nbsp;Closed</option><option value="18">Non-English Regions</option></select> <span class="help-block">Select the forum or forums you wish to search in. Subforums are searched automatically if you do not disable “search subforums“ below.</span> </div> </div> <div class="form-group"> <label class="control-label col-md-3" for="search_child1">Search subforums:</label> <div class="col-md-9"> <label for="search_child1" class="radio-inline"><input type="radio" name="sc" id="search_child1" value="1" checked="checked" /> Yes</label> <label for="search_child2" class="radio-inline"><input type="radio" name="sc" id="search_child2" value="0" /> No</label> </div> </div> <div class="form-group"> <label class="control-label col-md-3" for="sf1">Search within:</label> <div class="col-md-9"> <div class="radio"><label for="sf1"><input type="radio" name="sf" id="sf1" value="all" checked="checked" /> Post subjects and message text</label></div> <div class="radio"><label for="sf2"><input type="radio" name="sf" id="sf2" value="msgonly" /> Message text only</label></div> <div class="radio"><label for="sf3"><input type="radio" name="sf" id="sf3" value="titleonly" /> Topic titles only</label></div> <div class="radio"><label for="sf4"><input type="radio" name="sf" id="sf4" value="firstpost" /> First post of topics only</label></div> </div> </div> <hr class="dashed" /> <div class="form-group"> <label class="control-label col-md-3" for="show_results1">Display results as:</label> <div class="col-md-9"> <label for="show_results1" class="radio-inline"><input type="radio" name="sr" id="show_results1" value="posts" checked="checked" /> Posts</label> <label for="show_results2" class="radio-inline"><input type="radio" name="sr" id="show_results2" value="topics" /> Topics</label> </div> </div> <div class="form-group"> <label class="control-label col-md-3" for="sd">Sort results by:</label> <div class="col-md-9"> <select name="sk" id="sk"><option value="a">Author</option><option value="t" selected="selected">Post time</option><option value="f">Forum</option><option value="i">Topic title</option><option value="s">Post subject</option></select> <label for="sa" class="radio-inline"><input type="radio" name="sd" id="sa" value="a" /> Ascending</label> <label for="sd" class="radio-inline"><input type="radio" name="sd" id="sd" value="d" checked="checked" /> Descending</label> </div> </div> <div class="form-group"> <label class="control-label col-md-3">Limit results to previous:</label> <div class="col-md-9"> <select name="st" id="st"><option value="0" selected="selected">All results</option><option value="1">1 day</option><option value="7">7 days</option><option value="14">2 weeks</option><option value="30">1 month</option><option value="90">3 months</option><option value="180">6 months</option><option value="365">1 year</option></select> </div> </div> <div class="form-group"> <label class="control-label col-md-3" >Return first:</label></dt> <div class="col-md-9"> <select name="ch" title="Return first"><option value="-1">All available</option><option value="0">0</option><option value="25">25</option><option value="50">50</option><option value="100">100</option><option value="200">200</option><option value="300" selected="selected">300</option><option value="400">400</option><option value="500">500</option><option value="600">600</option><option value="700">700</option><option value="800">800</option><option value="900">900</option><option value="1000">1000</option></select> characters of posts </div> </div> </div> </fieldset> </div> </div> </div> <div class="form-group"> <fieldset class="submit-buttons"> <input type="hidden" name="t" value="0" /> <input type="hidden" name="sid" value="0cb1cccbf652eb67310cd2d51f7b2668" /> <input type="reset" value="Reset" name="reset" class="btn btn-danger" />&nbsp; <input type="submit" name="submit" value="Search" class="btn btn-primary" /> </fieldset> </div> </form> <div id="page-footer" class="footer-padding"> <div class="row"> <div class="col-md-2 pull-right"> <div class="btn-group dropup pull-right"> <a class="btn btn-default dropdown-toggle" data-toggle="dropdown" href="#" style=" display: block; "> <i class="fa fa-wrench"></i> <span class="caret"></span> </a> <ul class="dropdown-menu"> <li><a href="./search.php?search_id=unanswered&amp;sid=0cb1cccbf652eb67310cd2d51f7b2668">View unanswered posts</a></li> <li><a href="./search.php?search_id=active_topics&amp;sid=0cb1cccbf652eb67310cd2d51f7b2668">View active topics</a></li> </ul> </div> <br /> </div> </div> <div class="text-center"><p>Powered by <a href="http://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Group </p> </div> </div> </div> <nav class="navbar navbar-default navbar-fixed-bottom hidden-sm hidden-xs" id="footer-nav" role="navigation"> <div class="container"> <div class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <li><a href="./memberlist.php?mode=leaders&amp;sid=0cb1cccbf652eb67310cd2d51f7b2668"><i class="fa fa-users"></i> The team</a></li><li><a href="./ucp.php?mode=delete_cookies&amp;sid=0cb1cccbf652eb67310cd2d51f7b2668"><i class="fa fa-trash-o"></i> Delete all board cookies</a> </li> <li><p class="navbar-text">All times are UTC </p></li> </ul> </div> </div> </nav> <a id="back-to-top" href="#" class="btn btn-primary" role="button" title="" data-toggle="tooltip" data-placement="left"><i class="fa fa-chevron-up"></i></a> <a id="bottom" accesskey="z"></a>
_locals
namevalue
controllercgi
actioncgi.forum

app.locals

namevalue
settings
namevalue
x-powered-bytrue
etagweak
etag fnargs: 2, fn name: wetag
function wetag(body, encoding){
  var buf = !Buffer.isBuffer(body)
    ? new Buffer(body, encoding)
    : body;

  return etag(buf, {weak: true});
}
envdevelopment
query parserextended
query parser fnargs: 1, fn name: parseExtendedQueryString
function parseExtendedQueryString(str) {
  return qs.parse(str, {
    allowDots: false,
    allowPrototypes: true
  });
}
subdomain offset2
trust proxy
indexvalue
0127.0.0.1/8
1::1/128
2169.254.0.0/16
3fe80::/10
410.0.0.0/8
5172.16.0.0/12
6192.168.0.0/16
7fc00::/7
trust proxy fnargs: 1, fn name: trust
function trust(addr) {
    if (!isip(addr)) return false;

    var ip = parseip(addr);
    var ipv4;
    var kind = ip.kind();
    var subnet;
    var subnetip;
    var subnetkind;
    var subnetrange;
    var trusted;

    for (var i = 0; i < subnets.length; i++) {
      subnet = subnets[i];
      subnetip = subnet[0];
      subnetkind = subnetip.kind();
      subnetrange = subnet[1];
      trusted = ip;

      if (kind !== subnetkind) {
        if (kind !== 'ipv6' || subnetkind !== 'ipv4' || !ip.isIPv4MappedAddress()) {
          continue;
        }

        // Store addr as IPv4
        ipv4 = ipv4 || ip.toIPv4Address();
        trusted = ipv4;
      }

      if (trusted.match(subnetip, subnetrange)) return true;
    }

    return false;
  }
viewargs: 2, fn name: View
function View(name, options) {
  var opts = options || {};

  this.defaultEngine = opts.defaultEngine;
  this.ext = extname(name);
  this.name = name;
  this.root = opts.root;

  if (!this.ext && !this.defaultEngine) {
    throw new Error('No default engine was specified and no extension was provided.');
  }

  var fileName = name;

  if (!this.ext) {
    // get extension from default engine name
    this.ext = this.defaultEngine[0] !== '.'
      ? '.' + this.defaultEngine
      : this.defaultEngine;

    fileName += this.ext;
  }

  if (!opts.engines[this.ext]) {
    // load engine
    opts.engines[this.ext] = require(this.ext.substr(1)).__express;
  }

  // store loaded engine
  this.engine = opts.engines[this.ext];

  // lookup path
  this.path = this.lookup(fileName);
}
views/var/www/v2/app/views
jsonp callback namecallback
view enginejade
basedir/var/www/v2/app/views

req

namevalue
readablefalse
domain
namevalue
domainnull
_events
namevalue
errorargs: 1, fn name:
function (e) {
    next(e);
  }
_maxListenersundefined
members
indexvalue
0
namevalue
_readableState(Depth exceeded; max depth: 4)
readablefalse
domain(Depth exceeded; max depth: 4)
_events(Depth exceeded; max depth: 4)
_maxListenersundefined
socket(Depth exceeded; max depth: 4)
connection(Depth exceeded; max depth: 4)
httpVersionMajor1
httpVersionMinor0
httpVersion1.0
completetrue
headers(Depth exceeded; max depth: 4)
rawHeaders(Depth exceeded; max depth: 4)
trailers{ }
rawTrailers[ ]
_pendings[ ]
_pendingIndex0
upgradefalse
url/search.php
methodGET
statusCodenull
statusMessagenull
client(Depth exceeded; max depth: 4)
_consumingtrue
_dumpedfalse
EDT{ }
nextargs: 1, fn name: next
function next(err) {
    var layerError = err === 'route'
      ? null
      : err;

    // remove added slash
    if (slashAdded) {
      req.url = req.url.substr(1);
      slashAdded = false;
    }

    // restore altered req.url
    if (removed.length !== 0) {
      req.baseUrl = parentUrl;
      req.url = protohost + removed + req.url.substr(protohost.length);
      removed = '';
    }

    // no more matching layers
    if (idx >= stack.length) {
      setImmediate(done, layerError);
      return;
    }

    // get pathname of request
    var path = getPathname(req);

    if (path == null) {
      return done(layerError);
    }

    // find next matching layer
    var layer;
    var match;
    var route;

    while (match !== true && idx < stack.length) {
      layer = stack[idx++];
      match = matchLayer(layer, path);
      route = layer.route;

      if (typeof match !== 'boolean') {
        // hold on to layerError
        layerError = layerError || match;
      }

      if (match !== true) {
        continue;
      }

      if (!route) {
        // process non-route handlers normally
        continue;
      }

      if (layerError) {
        // routes do not match with a pending error
        match = false;
        continue;
      }

      var method = req.method;
      var has_method = route._handles_method(method);

      // build up automatic options response
      if (!has_method && method === 'OPTIONS') {
        appendMethods(options, route._options());
      }

      // don't even bother matching route
      if (!has_method && method !== 'HEAD') {
        match = false;
        continue;
      }
    }

    // no match
    if (match !== true) {
      return done(layerError);
    }

    // store route for dispatch on change
    if (route) {
      req.route = route;
    }

    // Capture one-time layer values
    req.params = self.mergeParams
      ? mergeParams(layer.params, parentParams)
      : layer.params;
    var layerPath = layer.path;

    // this should be done for the layer
    self.process_params(layer, paramcalled, req, res, function (err) {
      if (err) {
        return next(layerError || err);
      }

      if (route) {
        return layer.handle_request(req, res, next);
      }

      trim_prefix(layer, layerError, layerPath, path);
    });
  }
baseUrl/forum
originalUrl/forum/search.php
_parsedUrl(Depth exceeded; max depth: 4)
params{ }
query{ }
res(Depth exceeded; max depth: 4)
_parsedOriginalUrl(Depth exceeded; max depth: 4)
rawBody(Depth exceeded; max depth: 4)
rawBodyDonetrue
rawBodyChipundefined
readargs: 1, fn name:
function (n) {
  debug('read', n);
  var state = this._readableState;
  var nOrig = n;

  if (!util.isNumber(n) || n > 0)
    state.emittedReadable = false;

  // if we're doing read(0) to trigger a readable event, but we
  // already have a bunch of data in the buffer, then just trigger
  // the 'readable' event and move on.
  if (n === 0 &&
      state.needReadable &&
      (state.length >= state.highWaterMark || state.ended)) {
    debug('read: emitReadable', state.length, state.ended);
    if (state.length === 0 && state.ended)
      endReadable(this);
    else
      emitReadable(this);
    return null;
  }

  n = howMuchToRead(n, state);

  // if we've ended, and we're now clear, then finish it up.
  if (n === 0 && state.ended) {
    if (state.length === 0)
      endReadable(this);
    return null;
  }

  // All the actual chunk generation logic needs to be
  // *below* the call to _read.  The reason is that in certain
  // synthetic stream cases, such as passthrough streams, _read
  // may be a completely synchronous operation which may change
  // the state of the read buffer, providing enough data when
  // before there was *not* enough.
  //
  // So, the steps are:
  // 1. Figure out what the state of things will be after we do
  // a read from the buffer.
  //
  // 2. If that resulting state will trigger a _read, then call _read.
  // Note that this may be asynchronous, or synchronous.  Yes, it is
  // deeply ugly to write APIs this way, but that still doesn't mean
  // that the Readable class should behave improperly, as streams are
  // designed to be sync/async agnostic.
  // Take note if the _read call is sync or async (ie, if the read call
  // has returned yet), so that we know whether or not it's safe to emit
  // 'readable' etc.
  //
  // 3. Actually pull the requested chunks out of the buffer and return.

  // if we need a readable event, then we need to do some reading.
  var doRead = state.needReadable;
  debug('need readable', doRead);

  // if we currently have less than the highWaterMark, then also read some
  if (state.length === 0 || state.length - n < state.highWaterMark) {
    doRead = true;
    debug('length less than watermark', doRead);
  }

  // however, if we've ended, then there's no point, and if we're already
  // reading, then it's unnecessary.
  if (state.ended || state.reading) {
    doRead = false;
    debug('reading or ended', doRead);
  }

  if (doRead) {
    debug('do read');
    state.reading = true;
    state.sync = true;
    // if the length is currently zero, then we *need* a readable event.
    if (state.length === 0)
      state.needReadable = true;
    // call internal read method
    this._read(state.highWaterMark);
    state.sync = false;
  }

  // If _read pushed data synchronously, then `reading` will be false,
  // and we need to re-evaluate how much data we can return to the user.
  if (doRead && !state.reading)
    n = howMuchToRead(nOrig, state);

  var ret;
  if (n > 0)
    ret = fromList(n, state);
  else
    ret = null;

  if (util.isNull(ret)) {
    state.needReadable = true;
    n = 0;
  }

  state.length -= n;

  // If we have nothing in the buffer, then we want to know
  // as soon as we *do* get something into the buffer.
  if (state.length === 0 && !state.ended)
    state.needReadable = true;

  // If we tried to read() past the EOF, then emit end on the next tick.
  if (nOrig !== n && state.ended && state.length === 0)
    endReadable(this);

  if (!util.isNull(ret))
    this.emit('data', ret);

  return ret;
}
1
namevalue
domain(Depth exceeded; max depth: 4)
_events(Depth exceeded; max depth: 4)
_maxListenersundefined
output[ ]
outputEncodings[ ]
outputCallbacks[ ]
writabletrue
_lastfalse
chunkedEncodingfalse
shouldKeepAlivefalse
useChunkedEncodingByDefaultfalse
sendDatetrue
_removedHeader{ }
_hasBodytrue
_trailer
finishedfalse
_hangupClosefalse
_headerSentfalse
socket(Depth exceeded; max depth: 4)
connection(Depth exceeded; max depth: 4)
_headernull
_headers(Depth exceeded; max depth: 4)
_headerNames(Depth exceeded; max depth: 4)
req(Depth exceeded; max depth: 4)
locals(Depth exceeded; max depth: 4)
_EDT_orig_renderargs: 3, fn name: render
function render(view, options, callback) {
  var app = this.req.app;
  var done = callback;
  var opts = options || {};
  var req = this.req;
  var self = this;

  // support callback function as second arg
  if (typeof options === 'function') {
    done = options;
    opts = {};
  }

  // merge res.locals
  opts._locals = self.locals;

  // default callback to respond
  done = done || function (err, str) {
    if (err) return req.next(err);
    self.send(str);
  };

  // render
  app.render(view, opts, done);
}
renderargs: 3, fn name:
function (view, options, fn) {
        options = options || {};

        var res = this,
            req = this.req,
            app = this.app,
            accept = req.headers.accept || '';


        var finalize = function (err, str) {
            // keep existing callback if one was passed
            if (typeof fn === 'function') {
                fn(err, str);
            } else if (err) {
                req.next(err);
            } else {
                res.send(str);
            }
        };

        panels.finalize(req);

        // support callback function as second arg
        if (typeof options === 'function') {
            fn = options;
            options = {};
        }

        // merge res.locals
        options._locals = res.locals;

        var render_toolbar = function (str, callback) {
            var standalone = settings.path === req.path;
            var opts = {
                EDTsettings: settings,
                theme:       theme,
                req:         req,
                standalone:  standalone,
                extra_attrs: settings.extra_attrs,
                panels:      panels.render({
                    locals: options,
                    app:    app,
                    res:    res,
                    req:    req,
                    view:   view
                }, settings, standalone)
            };

            jade.renderFile(template, opts, function (err, toolbar) {
                callback(err, err ? undefined : utils.inject_toolbar(str, toolbar));
            });
        };

        var toolbar_callback = function (err, str) {
            panels.post_render(req);

            if (err) {
                console.log(err);
                req.next(err);

            } else if (res.EDT_rendered) {
                // if callback method was used, more than one template may be rendered.
                // in this care, do not render another copy
                // TODO: see if we can catch this on the last render, and attach it in .send instead
                finalize(err, str);

            } else {
                res.EDT_rendered = true;
                render_toolbar(str, finalize);
            }
        };

        panels.pre_render(req);
        if (req.path.indexOf(settings.path) === 0) {
            // standalone mode
            jade.renderFile(fullpage, function (err, str) {
                toolbar_callback(err, str);
            });

        } else {
            // inject toolbar callback into render callback
            res._EDT_orig_render.call(res, view, options, toolbar_callback);
        }
    }
_EDT_orig_sendargs: 1, fn name: send
function send(body) {
  var chunk = body;
  var encoding;
  var len;
  var req = this.req;
  var type;

  // settings
  var app = this.app;

  // allow status / body
  if (arguments.length === 2) {
    // res.send(body, status) backwards compat
    if (typeof arguments[0] !== 'number' && typeof arguments[1] === 'number') {
      deprecate('res.send(body, status): Use res.status(status).send(body) instead');
      this.statusCode = arguments[1];
    } else {
      deprecate('res.send(status, body): Use res.status(status).send(body) instead');
      this.statusCode = arguments[0];
      chunk = arguments[1];
    }
  }

  // disambiguate res.send(status) and res.send(status, num)
  if (typeof chunk === 'number' && arguments.length === 1) {
    // res.send(status) will set status message as text string
    if (!this.get('Content-Type')) {
      this.type('txt');
    }

    deprecate('res.send(status): Use res.sendStatus(status) instead');
    this.statusCode = chunk;
    chunk = statusCodes[chunk];
  }

  switch (typeof chunk) {
    // string defaulting to html
    case 'string':
      if (!this.get('Content-Type')) {
        this.type('html');
      }
      break;
    case 'boolean':
    case 'number':
    case 'object':
      if (chunk === null) {
        chunk = '';
      } else if (Buffer.isBuffer(chunk)) {
        if (!this.get('Content-Type')) {
          this.type('bin');
        }
      } else {
        return this.json(chunk);
      }
      break;
  }

  // write strings in utf-8
  if (typeof chunk === 'string') {
    encoding = 'utf8';
    type = this.get('Content-Type');

    // reflect this in content-type
    if (typeof type === 'string') {
      this.set('Content-Type', setCharset(type, 'utf-8'));
    }
  }

  // populate Content-Length
  if (chunk !== undefined) {
    if (!Buffer.isBuffer(chunk)) {
      // convert chunk to Buffer; saves later double conversions
      chunk = new Buffer(chunk, encoding);
      encoding = undefined;
    }

    len = chunk.length;
    this.set('Content-Length', len);
  }

  // populate ETag
  var etag;
  var generateETag = len !== undefined && app.get('etag fn');
  if (typeof generateETag === 'function' && !this.get('ETag')) {
    if ((etag = generateETag(chunk, encoding))) {
      this.set('ETag', etag);
    }
  }

  // freshness
  if (req.fresh) this.statusCode = 304;

  // strip irrelevant headers
  if (204 == this.statusCode || 304 == this.statusCode) {
    this.removeHeader('Content-Type');
    this.removeHeader('Content-Length');
    this.removeHeader('Transfer-Encoding');
    chunk = '';
  }

  if (req.method === 'HEAD') {
    // skip body for HEAD
    this.end();
  } else {
    // respond
    this.end(chunk, encoding);
  }

  return this;
}
sendargs: 0, fn name:
function () {
        if (this.EDT_rendered !== true) {
            request.add(this.req, arguments);
        }
        this._EDT_orig_send.apply(this, arguments);
    }
EDT_renderedtrue
id1561420826042
httpVersionMajor1
httpVersionMinor0
httpVersion1.0
completetrue
headers
namevalue
user-agentCCBot/2.0 (https://commoncrawl.org/faq/)
accepttext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
accept-languageen-US,en;q=0.5
if-modified-sinceThu, 25 Apr 2019 04:49:50 GMT
hostwps-community.org
accept-encodinggzip
x-forwarded-for3.90.45.27
x-hostwps-community.org
x-forwarded-protohttp
rawHeaders
indexvalue
0User-Agent
1CCBot/2.0 (https://commoncrawl.org/faq/)
2Accept
3text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
4Accept-Language
5en-US,en;q=0.5
6If-Modified-Since
7Thu, 25 Apr 2019 04:49:50 GMT
8Host
9wps-community.org
10Accept-Encoding
11gzip
12X-Forwarded-For
133.90.45.27
14X-Host
15wps-community.org
16X-Forwarded-Proto
17http
trailers{ }
rawTrailers[ ]
upgradefalse
url/search.php
methodGET
statusCodenull
statusMessagenull
EDT{ }
baseUrl/forum
originalUrl/forum/search.php
_parsedUrl
namevalue
protocolnull
slashesnull
authnull
hostnull
portnull
hostnamenull
hashnull
searchnull
querynull
pathname/search.php
path/search.php
href/search.php
_raw/search.php
params{ }
query{ }
_parsedOriginalUrl
namevalue
protocolnull
slashesnull
authnull
hostnull
portnull
hostnamenull
hashnull
searchnull
querynull
pathname/forum/search.php
path/forum/search.php
href/forum/search.php
_raw/forum/search.php
rawBody
namevalue
length0
parentundefined
rawBodyDonetrue
rawBodyChipundefined

session

namevalue

Templatecgi/forum

extends /layouts/application.jade

block title
  != title

block content
  != body

block footer
  

info

namevalue
async
namevalue
version1.3.0
author
namevalue
nameCaolan McMahon
devDependencies
namevalue
benchmarkgithub:bestiejs/benchmark.js
coveralls^2.11.2
jshint~2.8.0
lodash^3.9.0
mkdirp~0.5.1
nodeunit>0.0.0
nyc^2.1.0
uglify-js~2.4.0
xyz^0.5.0
yargs~3.9.1
repository
namevalue
typegit
urlgit+https://github.com/caolan/async.git
homepagehttps://github.com/caolan/async#readme
bugs
namevalue
urlhttps://github.com/caolan/async/issues
licenseMIT
bower
namevalue
version1.4.1
author
namevalue
nameTwitter
dependencies
namevalue
abbrev^1.0.5
archy1.0.0
bower-config^0.6.1
bower-endpoint-parser^0.2.2
bower-json^0.4.0
bower-logger^0.2.2
bower-registry-client^0.3.0
cardinal0.4.4
chalk^1.0.0
chmodr0.1.0
configstore^0.3.2
decompress-zip^0.1.0
fstream^1.0.3
fstream-ignore^1.0.2
github^0.2.3
glob^4.3.2
graceful-fs^3.0.5
handlebars^2.0.0
inquirer0.8.0
insight^0.5.0
is-root^1.0.0
junk^1.0.0
lockfile^1.0.0
lru-cache^2.5.0
mkdirp0.5.0
mout^0.11.0
nopt^3.0.1
opn^1.0.1
p-throttler0.1.1
promptly0.2.0
q^1.1.2
request2.53.0
request-progress0.3.1
retry0.6.1
rimraf^2.2.8
semver^2.3.0
shell-quote^1.4.2
stringify-object^1.0.0
tar-fs^1.4.1
tmp0.0.24
update-notifier^0.3.0
user-home^1.1.0
which^1.0.8
devDependencies
namevalue
chai^1.10.0
coveralls^2.11.2
expect.js^0.3.1
grunt^0.4.5
grunt-cli^0.1.13
grunt-contrib-jshint^0.10.0
grunt-contrib-watch^0.6.1
grunt-exec^0.4.6
grunt-simple-mocha^0.4.0
istanbul^0.3.5
load-grunt-tasks^2.0.0
mocha^2.1.0
multiline^1.0.2
nock^0.56.0
node-uuid^1.4.2
proxyquire^1.3.0
spawn-sync^1.0.5
repository
namevalue
typegit
urlhttps://github.com/bower/bower
homepagehttp://bower.io
bugs
namevalue
urlhttps://github.com/bower/bower/issues
licenses
indexvalue
0
namevalue
typeMIT
urlhttps://github.com/bower/bower/blob/master/LICENSE
bin
namevalue
bowerbin/bower
continue.js
namevalue
version1.1.0
author
namevalue
nameChizhong Jin
emailjinchizhong@kingsoft.com
dependencies
namevalue
promise^7.0.3
repository
namevalue
typegit
urlhttps://github.com/jinchizhong/continue
homepagehttps://github.com/jinchizhong/continue
bugs
namevalue
urlhttps://github.com/jinchizhong/continue/issues
licenseBSD-3-Clause
express
namevalue
version4.13.1
author
namevalue
nameTJ Holowaychuk
emailtj@vision-media.ca
dependencies
namevalue
accepts~1.2.10
array-flatten1.1.0
content-disposition0.5.0
content-type~1.0.1
cookie0.1.3
cookie-signature1.0.6
debug~2.2.0
depd~1.0.1
escape-html1.0.2
etag~1.7.0
finalhandler0.4.0
fresh0.3.0
merge-descriptors1.0.0
methods~1.1.1
on-finished~2.3.0
parseurl~1.3.0
path-to-regexp0.1.6
proxy-addr~1.0.8
qs4.0.0
range-parser~1.0.2
send0.13.0
serve-static~1.10.0
type-is~1.6.4
vary~1.0.0
utils-merge1.0.0
devDependencies
namevalue
after0.8.1
ejs2.3.2
istanbul0.3.9
marked0.3.3
mocha2.2.5
should7.0.1
supertest1.0.1
body-parser~1.13.2
connect-redis~2.3.0
cookie-parser~1.3.5
cookie-session~1.2.0
express-session~1.11.3
jade~1.11.0
method-override~2.3.3
morgan~1.6.1
multiparty~4.1.2
vhost~3.0.0
repository
namevalue
typegit
urlhttps://github.com/strongloop/express
homepagehttp://expressjs.com/
bugs
namevalue
urlhttps://github.com/strongloop/express/issues
licenseMIT
express-debug
namevalue
version1.1.1
author
namevalue
nameTom Hunkapiller
dependencies
namevalue
jade0.29.0
xtend2.0.3
connectr0.0.6
repository
namevalue
typegit
urlgit://github.com/devoidfury/express-debug.git
homepagehttps://github.com/devoidfury/express-debug#readme
bugs
namevalue
urlhttps://github.com/devoidfury/express-debug/issues
licenseMIT
express-domain-middleware
namevalue
version0.1.0
author
namevalue
nameBrian M. Carlson
devDependencies
namevalue
omf~0.3.0
okay~0.2.0
mocha~1.8.2
express~3.2.4
repository
namevalue
typegit
urlgit://github.com/brianc/node-domain-middleware
licenseMIT
express-grab-body
namevalue
version0.1.0
author
namevalue
namejinchizhong@kingsoft.com
dependencies{ }
devDependencies
namevalue
body-parser^1.13.3
express^4.13.3
licenseBSD
filesize
namevalue
version3.1.2
author
namevalue
nameJason Mulligan
emailjason.mulligan@avoidwork.com
devDependencies
namevalue
grunt~0.4.5
grunt-cli~0.1.13
grunt-babel^4.0.0
grunt-sed~0.1.1
grunt-contrib-concat~0.5.0
grunt-contrib-nodeunit~0.4.1
grunt-contrib-watch~0.6.1
grunt-contrib-uglify~0.7.0
repository
namevalue
typegit
urlgit://github.com/avoidwork/filesize.js.git
homepagehttp://filesizejs.com
bugs
namevalue
urlhttps://github.com/avoidwork/filesize.js/issues
licenses
indexvalue
0
namevalue
typeBSD-3
urlhttps://raw.github.com/avoidwork/filesize.js/master/LICENSE
glob
namevalue
version5.0.13
author
namevalue
nameIsaac Z. Schlueter
emaili@izs.me
urlhttp://blog.izs.me/
dependencies
namevalue
inflight^1.0.4
inherits2
minimatch^2.0.1
once^1.3.0
path-is-absolute^1.0.0
devDependencies
namevalue
mkdirp0
rimraf^2.2.8
tap^1.1.4
tick0.0.6
repository
namevalue
typegit
urlgit://github.com/isaacs/node-glob.git
homepagehttps://github.com/isaacs/node-glob#readme
bugs
namevalue
urlhttps://github.com/isaacs/node-glob/issues
licenseISC
jade
namevalue
version1.11.0
author
namevalue
nameTJ Holowaychuk
emailtj@vision-media.ca
dependencies
namevalue
character-parser1.2.1
clean-css^3.1.9
commander~2.6.0
constantinople~3.0.1
jstransformer0.0.2
mkdirp~0.5.0
transformers2.1.0
uglify-js^2.4.19
void-elements~2.0.1
with~4.0.0
devDependencies
namevalue
browserify*
browserify-middleware~4.1.0
code-mirror~3.22.0
coffee-script*
coveralls^2.11.2
express~4.10.4
github-basic^4.1.2
handle~1.0.0
highlight-codemirror~4.1.0
inconsolata0.0.2
istanbul*
jade-code-mirror~1.0.5
jade-highlighter~1.0.5
jstransformer-cdata0.0.3
jstransformer-coffee-script0.0.2
jstransformer-less^1.0.0
jstransformer-marked0.0.1
jstransformer-stylus0.0.1
jstransformer-verbatim0.0.2
less<2.0.0
less-file0.0.9
linify*
lsr^1.0.0
marked~0.3.3
mocha*
opener^1.3.0
pull-request^3.0.0
rimraf^2.2.8
should*
stop^3.0.0-rc1
stylus*
twbs0.0.6
uglify-js*
repository
namevalue
typegit
urlgit://github.com/jadejs/jade.git
homepagehttp://jade-lang.com
bugs
namevalue
urlhttps://github.com/jadejs/jade/issues
licenseMIT
bin
namevalue
jade./bin/jade.js
js-yaml
namevalue
version3.3.1
author
namevalue
nameDervus Grim
emaildervus.grim@gmail.com
dependencies
namevalue
argparse~1.0.2
esprima~2.2.0
devDependencies
namevalue
ansi*
benchmark*
eslint0.18.0
eslint-plugin-nodeca^1.0.3
istanbul*
mocha*
repository
namevalue
typegit
urlgit://github.com/nodeca/js-yaml.git
homepagehttps://github.com/nodeca/js-yaml
bugs
namevalue
urlhttps://github.com/nodeca/js-yaml/issues
licenseMIT
bin
namevalue
js-yamlbin/js-yaml.js
marked
namevalue
version0.3.3
author
namevalue
nameChristopher Jeffrey
devDependencies
namevalue
markdown*
showdown*
robotskirt*
repository
namevalue
typegit
urlgit://github.com/chjj/marked.git
homepagehttps://github.com/chjj/marked
bugs
namevalue
urlhttp://github.com/chjj/marked/issues
licenseMIT
bin
namevalue
marked./bin/marked
moment
namevalue
version2.10.3
author
namevalue
nameIskren Ivov Chernev
emailiskren.chernev@gmail.com
urlhttps://github.com/ichernev
devDependencies
namevalue
uglify-jslatest
es6-promiselatest
gruntlatest
benchmarklatest
esperantolatest
grunt-contrib-cleanlatest
grunt-contrib-concatlatest
grunt-contrib-copylatest
grunt-contrib-jshintlatest
grunt-contrib-uglifylatest
grunt-contrib-watchlatest
grunt-envlatest
grunt-jscslatest
grunt-karmalatest
grunt-nugetlatest
grunt-benchmarklatest
grunt-string-replacelatest
grunt-execlatest
load-grunt-taskslatest
karmalatest
karma-chrome-launcherlatest
karma-firefox-launcherlatest
karma-qunitlatest
karma-sauce-launcherlatest
qunit^0.7.5
qunit-cli^0.1.4
spacejamlatest
repository
namevalue
typegit
urlhttps://github.com/moment/moment.git
homepagehttp://momentjs.com
bugs
namevalue
urlhttps://github.com/moment/moment/issues
licenses
indexvalue
0
namevalue
typeMIT
serve-cgi
namevalue
version0.6.1
dependencies
namevalue
async^1.2.1
extend^2.0.1
devDependencies
namevalue
express^4.13.0
express-grab-body^0.1.0
supertest^1.0.1
licenseBSD

node

namevalue
http_parser2.3
node0.12.7
v83.28.71.19
uv1.6.1
zlib1.2.8
modules14
openssl1.0.1p