index.js
function(key, value) {
    switch (utils.typeOf(key)) {
      case 'object':
        this.visit('default', key);
        break;
      case 'string':
        if (typeof value === 'undefined') {
          return utils.get(this.defaults, key);
        }
        utils.set(this.defaults, key, value);
        break;
      default: {
        throw new TypeError('expected a string or object');
      }
    }
    return this;
  }
function(key, value) {
    switch (utils.typeOf(key)) {
      case 'object':
        this.visit('default', key);
        break;
      case 'string':
        if (typeof value === 'undefined') {
          return utils.get(this.defaults, key);
        }
        utils.set(this.defaults, key, value);
        break;
      default: {
        throw new TypeError('expected a string or object');
      }
    }
    return this;
  }
function ( key , value ) { switch ( utils . typeOf ( key ) ) { case 'object' : this . visit ( 'default' , key ) ; break ; case 'string' : if ( typeof value === 'undefined' ) { return utils . get ( this . defaults , key ) ; } utils . set ( this . defaults , key , value ) ; break ; default : { throw new TypeError ( 'expected a string or object' ) ; } } return this ; }
Set or get a default value. Defaults are cached on the `.defaults`
object.

```js
app.default('admin', false);
app.default('admin');
//=> false

app.option('admin');
//=> false

app.option('admin', true);
app.option('admin');
//=> true
```
@name .option
@param {String} `key` The option name.
@param {*} `value` The value to set.
@return {*} Returns a `value` when only `key` is defined.
@api public
Set or get a default value . Defaults are cached on the . defaults object .