关于网上接口的使用(待更)
今天根据教程,总算明白了如何使用网上的一些接口。这样就不用爬虫,直接可以使用网上的数据了哈哈哈,前端更进一步
因近期时间不足,先加todo标签以待更。
数据来源有两种:1.一种是线上的接口。2.一种是本地的数据mock||或者本地的数据库。
app.js
app.use(controller.get('/ajax/search',function*(){
this.set('Cache-Control','no-cache');
var querystring=require('querystring');
var params=querystring.parse(this.req._parsedUrl.query);
// 把参数解析成object
var start=params.start;
var end=params.end;
var keyword=params.keyword;
this.body=yield service.get_search_data(start,end,keyword);
}));
webAppService.js
exports.get_search_data=function(start,end,keyword){
return function(callback){
//object对象转成
//{a:'1'}(它就是object),后端接受的是http://127.0.0.1/api?a=1
var data={
start:start,
end:end,
s:keyword
};
var content=qs.stringify(data);
console.log("查询的地址是:"+content);
var http_request={
hostname:'dushu.xiaomi.com',
port:80,
path:'/store/v0/lib/query/onebox?'+content
};
req_obj=http.request(http_request,function(_res){
var content='';
_res.setEncoding('utf-8');
_res.on('data',function(chunk){
content=content+chunk;
//拼接所有的数据
});//返回数据,触发data方法,注意:返回的是一部分数据
_res.on('end',function(){
callback(null,content);
});//end之后所有数据都返回了
});
req_obj.on('error',function(){
});
req_obj.end();//发送这个请求
};
};
一遍一遍的咀嚼,总会烂的。