I'm using google npm package to return some search results in an angular service. I guess I don't understand anything because I can't seem to pass back the results from the google search function to my service to return it to my controller.
I'm trying to set the var results = google function return. That way I can parse the search into a json object and return it to my service and then return it to my controller for display.
the var results is always undefined
Console Output
RESULTS
search-service.js:43 undefined
controller.js:88 undefined
annyang-service.js:32 End undefined
search-service.js:22 [Object, Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object, Object]
search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object, 4: Object}
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object}
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object}
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object}
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:22 [Object, Object, Object, Object]
search-service.js:38 Object {0: Object, 1: Object, 2: Object, 3: Object}
2annyang-service.js:32 End undefined
CODE
(function() {
'use strict';
function SearchService($window, $http, $rootScope, $q) {
var service = {};
service.events = [];
var google = require('google');
google.resultsPerPage = 4;
var nextCounter = 0;
var results = {};
service.Search = function(searchString) {
console.log(searchString);
results = google(searchString, function (err, next, links){
var json_return = {};
var json_search_string = "{";
for (var i = 0; i <= links.length - 1; ++i) {
var description_fixed = links[i].description.toString().replace(/(\r\n|\n|\r)/gm,'');
description_fixed = description_fixed.replace(/"/g, "");
console.log(links);
if(i != links.length - 1){
json_search_string +='"'+i.toString() + '":{ "title":" ' + links[i].title + '" , "link":"' + links[i].link + '" , "description":"' + description_fixed + '" },';
}else{
json_search_string +='"'+i.toString() + '":{ "title":" ' + links[i].title + '" , "link":"' + links[i].link + '" , "description":"' + description_fixed + '" }';
}
}
json_search_string += "}";
if (nextCounter < 4) {
nextCounter += 1;
if (next) next()
}
json_return = JSON.parse(json_search_string);
console.log(json_return);
return json_return
});
console.log("RESULTS");
console.log(results);
}
return service
}
angular.module('Diddo')
.factory('SearchService', SearchService);
}());
My controller directive
AnnyangService.addCommand('Google *term', function(term) {
console.log("executing search");
$rootScope.search_string = term.toString();
var results = SearchService.Search($rootScope.search_string);
console.log(results);
});