关于网上接口的使用(待更)

今天根据教程,总算明白了如何使用网上的一些接口。这样就不用爬虫,直接可以使用网上的数据了哈哈哈,前端更进一步

因近期时间不足,先加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();//发送这个请求
	};
};
posted @ 2017-06-24 20:28  海客无心x  阅读(311)  评论(0编辑  收藏  举报