查快递的包又来啦——xto
好久之前发过的包,不过那个时候初学 node,包括回调设计、API 设计方面都是乱来的。
最近想把最近初学 node 的时候不科学的包重新理一遍,就从这个 xto
入手了。
首先是包的 Repo 地址:
安装
安装很简单,直接
$ npm install xto --save
就好了。
为什么叫 XTO 呢?因为咱国内的很多快递都叫x通,然后英文名都叫
zto
、gto
、sto
等,于是我这个包就叫xto
了。
使用
直接 require
进来调用 query
方法即可。
var xto = require("xto");
xto.query(NUMBER, COMPANY_NAME, function(err, express) {
//... Do something
});
NUMBER
就是运单号,然后COMPANY_NAME
是快递公司名、短名以及公司标识其中之一。对照表在这里。
然后 callback
的 express
对象的格式结构大概是:
{
"message": "ok",
"nu": "1000****4443",
"ischeck": "1",
"com": "yuantong",
"updatetime": "2015-02-02 15:57:18",
"status": "200",
"condition": "F00",
"data": [
{
"time": "2014-11-06 18:32:19",
"location": "",
"context": "浙江省宁波市科技园区公司 已签收",
"ftime": "2014-11-06 18:32:19"
},
{
"time": "2014-11-06 09:14:58",
"location": "",
"context": "浙江省宁波市科技园区公司 派件中",
"ftime": "2014-11-06 09:14:58"
},
{
"time": "2014-11-06 09:04:52",
"location": "",
"context": "浙江省宁波市科技园区公司 已收入",
"ftime": "2014-11-06 09:04:52"
},
{
"time": "2014-11-06 05:31:40",
"location": "",
"context": "宁波转运中心公司 已发出",
"ftime": "2014-11-06 05:31:40"
},
{
"time": "2014-11-06 05:16:43",
"location": "",
"context": "宁波转运中心公司 已收入",
"ftime": "2014-11-06 05:16:43"
},
{
"time": "2014-11-06 00:21:40",
"location": "",
"context": "杭州转运中心公司 已打包",
"ftime": "2014-11-06 00:21:40"
},
{
"time": "2014-11-06 00:20:37",
"location": "",
"context": "杭州转运中心公司 已收入",
"ftime": "2014-11-06 00:20:37"
},
{
"time": "2014-11-05 20:35:27",
"location": "",
"context": "浙江省杭州市文三路公司 已收件",
"ftime": "2014-11-05 20:35:27"
}
],
"state": "3"
}
其中 "state"
字段是快递状态,可以通过 xto.stateToText
进行转化成可读的中文状态,比如 3
转化后就是 "已签收"
。
其它
XTO 目前支持 446 家快递公司的查询,具体的快递公司已在上方连接中列出。
5 回复
楼主很厉害 佩服~~还有gto这个。。。忍不住想吐槽
@yessirpopesama 吐槽什么 0. 0
楼主取名字好手…
关键还是namemapper.js
这个文件,楼主好耐心啊,整理了这么多。(原来是从快递100而来的)
mark 自豪地采用 CNodeJS ionic