Songo

Songo

用来构建songo协议的对象

Constructor

new Songo(entityopt)

Source:
Author:
Properties:
Name Type Description
query object.<string, (string|Array.<string>)> 全部是以key-value的形式,不能有任何形式的嵌套
sort Array.<string> 字符串数组,按照顺序描述排序
meta Object 可选字段[limit,page,skip]筛选对象,接受数字
string string 获取转换的url字符串
Query Query 内部的Query对象
Sort Sort 内部的Sort对象
Meta Meta 内部的Meta对象
Example
new Songo({
     query:{
       $eq$status:1,
       $gt$money:100
     },
     sort:['created'],
     meta:{
       limit:10,
       page:0,
       skip:0
     }
   })
Parameters:
Name Type Attributes Default Description
entity Object <optional>
object.<> 实例化Songo类的参数,包含3个字段:[query,sort,meta]

Members

(readonly) string

获取转换的url字符串.

Source:
获取转换的url字符串

Methods

clearSort() → {Songo}

清空排序队列.

Source:
清空排序队列
Example
let songo = new Songo({sort:['-create']});
   songo.clearSort();
Returns:
Type
Songo

fromParams(paramsObject) → {Songo}

将一个params对象,转化为实例.

Source:
将一个params对象,转化为实例
Example
let songo = new Songo({});
   songo.fromParams({
     limit:10,
     page:20
   })
Parameters:
Name Type Description
paramsObject Params.<string, (number|string)> 类似angular的ui-router中的$stateParams,url的query转化为plainObject
Returns:
Type
Songo

indexSort(sortKey) → {number}

索引一个sortKey.

Source:
索引一个sortKey
Example
let songo = new Songo({sort:['-create']});
   songo.indexSort('created');   // 0
Parameters:
Name Type Description
sortKey string 排序key,例如"+created","-created";默认+可以不填
Returns:
Type
number

onlySort(sortKey) → {Songo}

仅仅按照一个key排序.

Source:
仅仅按照一个key排序
Example
let songo = new Songo({sort:['-create']});
   songo.onlySort('-money');
   console.log(songo.sort);    // ['-money']
Parameters:
Name Type Description
sortKey
Returns:
Type
Songo

popSort() → {Songo}

删除队列的最后一个,,类似Array.prototype.pop,但是不会返回被删除的对象.

Source:
删除队列的最后一个,,类似Array.prototype.pop,但是不会返回被删除的对象
Example
let songo = new Songo({sort:['money','level','created']});
   songo.popSort();        // songo.sort >>  ['money','level']
   songo.popSort();        // songo.sort >>  ['money']
   songo.popSort();        // songo.sort >>  []
Returns:
Type
Songo

pushSort(sortKey) → {Songo}

在队列最后一个添加sortKey,类似Array.prototype.push.

Source:
在队列最后一个添加sortKey,类似Array.prototype.push
Example
let songo = new Songo({sort:['created']});
   songo.pushSort('level');        // songo.sort >>  ['created','level']
   songo.pushSort('money');        // songo.sort >>  ['created','level','money']
   songo.pushSort('level');        // songo.sort >>  ['created','money','level']
Parameters:
Name Type Description
sortKey string 排序key,例如"+created","-created";默认+可以不填
Returns:
Type
Songo

removeSort(sortKey) → {Songo}

删除其中的某个sortKey.

Source:
删除其中的某个sortKey
Example
let songo = new Songo({sort:['money','level','created']});
   songo.removeSort('created');        // songo.sort >>  ['money','level']
   songo.removeSort('money');          // songo.sort >>  ['level']
   songo.removeSort('-level');         // songo.sort >>  ['level']
Parameters:
Name Type Description
sortKey string 排序key,例如"+created","-created";默认+可以不填
Returns:
Type
Songo

setSort(sortKey) → {Songo}

添加一个sort.

Source:
添加一个sort
Example
let songo = new Songo({sort:['-create']});
   songo.setSort('created');       // songo.sort >>  ['created']
   songo.setSort('-money');        // songo.sort >>  ['-money','created']
   songo.setSort('level');         // songo.sort >>  ['level','-money','created']
   songo.setSort('-created');      // songo.sort >>  ['created','level','-money']
Parameters:
Name Type Description
sortKey string 排序key,例如"+created","-created";默认+可以不填
Returns:
Type
Songo

shiftSort() → {Songo}

除队列的第一个,类似Array.prototype.shift,但是不会返回被删除的对象.

Source:
除队列的第一个,类似Array.prototype.shift,但是不会返回被删除的对象
Example
let songo = new Songo({sort:['money','level','created']});
   songo.shiftSort();        // songo.sort >>  ['level','created']
   songo.shiftSort();        // songo.sort >>  ['created']
   songo.shiftSort();        // songo.sort >>  []
Returns:
Type
Songo

toParams() → {Params}

转换成适合在url上防止的对象.

Source:
转换成适合在url上防止的对象
Example
let songo = new Songo({
     meta:{
       limit:10,
       page:0
     }
   });
   songo.toParams()    // ?_limit=10&_page=0
Returns:
Type
Params

toQuery() → {string}

toString方法的别名.

Source:
toString方法的别名
Example
let songo = new Songo();
   songo.toQuery()
Returns:
Type
string

toString() → {string}

转换成最终的url字符串.

Source:
转换成最终的url字符串
This:
Returns:
Type
string

unshiftSort(sortKey) → {Songo}

在队列第一个插入,类似Array.prototype.unshift.

Source:
在队列第一个插入,类似Array.prototype.unshift
Example
let songo = new Songo({sort:['-create']});
   songo.unshiftSort('created');       // songo.sort >>  ['created']
   songo.unshiftSort('level');         // songo.sort >>  ['level','created']
   songo.unshiftSort('-money');        // songo.sort >>  ['money','level','created']
Parameters:
Name Type Description
sortKey string 排序key,例如"+created","-created";默认+可以不填
Returns:
Type
Songo