Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unhandled Rejection Error - Can't seem to catch this #326

Open
NoelDavies opened this issue Nov 23, 2017 · 0 comments
Open

Unhandled Rejection Error - Can't seem to catch this #326

NoelDavies opened this issue Nov 23, 2017 · 0 comments

Comments

@NoelDavies
Copy link

NoelDavies commented Nov 23, 2017

I'm crawling a group of X pages on a site my employer has built, each page is a /show/{x} essentially. On some pages I get the below error (or a similar error), and some I don't.

Unhandled rejection Error at ClientRequest.<anonymous> (/path/to/global/node_modules_folder/node_modules/node-phantom-simple/node-phantom-simple.js:659:12) at emitOne (events.js:115:13) at ClientRequest.emit (events.js:210:7) at Socket.socketOnEnd (_http_client.js:435:9) at emitNone (events.js:110:20) at Socket.emit (events.js:207:7) at endReadableNT (_stream_readable.js:1045:12) at _combinedTickCallback (internal/process/next_tick.js:102:11) at process._tickCallback (internal/process/next_tick.js:161:9)

By using the following Code:
Note: You can see I've tried a number of thing to catch the errors or prevent them from occuring but I've had no luck, my guess is that it's running out of memory of something?

var Horseman = require('node-horseman');
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

let issuesThatCauseACrash = [15739, 15724];


var baseUrl = 'https://test.x.domain.com';

rl.question('What base URL would you like use for this X page visitor? (' + baseUrl + ')', (answer) => {
  if (answer.length !== 0) {
  	baseUrl = answer;
  }

 try{
	rl.close();
	hg.setup();
	hg.login();
  } catch (err) {
	console.log('Error');
	hg.horseman.close();
	hg.visitCase(caseId);
  }
});


var hg = {
	horseman: {},

	setup: function () {
		hg.horseman = new Horseman({
			timeout: 500000,
			cookiesFile: './cookies.txt',
			loadImages: false,
			diskCache: false,
			diskCachePath: './cache/'
		})
		;
	},

	login: function () {
		hg.horseman
		  .log('Opening login page')
		  .open(baseUrl + '/login')
		  .type('input#username', 'usernameHere')
		  .type('input#password', 'passwordHere')
		  .click('#_submit')
		  .log('Logging in...')
		  .waitForNextPage()
		  .open(baseUrl + '/')
		  .waitForSelector('#table-of-new-items')
		  .log('opened')
		  .html('#table-new-cases tbody tr td:first-child() a')
		  .then((attribute) => {
		  	this.visitCase(attribute);
		  })
	  	;
	},

	visitCase: function(caseId) {
		caseId = '' + caseId + '';
		console.log(caseId);
		var rawCaseId = '' + caseId.replace(/^BS/, '').replace(/^0+/, '');

		hg.horseman
			.log('Opening case ' + rawCaseId)
			.open(baseUrl + '/cases/' + rawCaseId)
			
		        // .on('error', function (msg, trace) {
		        //     console.log('error: ', msg, trace);
		        // })
                        // .catch(function(e) {
                        //     console.log("horseman error: "+e);
                        // })
			// .log('Page opened, waiting for selector')
			.waitForSelector('#horse-accordion')
			// .log('found accordian')
			// .on('resourceReceived', (response) => {
			// 	if (new RegExp(/newFrontEndPremium/).test(response.url)) {
			// 		nextCaseId = rawCaseId - 1;

			// 		if (nextCaseId > 0) {
			// 			hg.visitCase(nextCaseId);
			// 		}
			// 	}
			// })
			.wait(2000)
			.close()
			.then(() => {
				nextCaseId = rawCaseId - 1;

				if (nextCaseId > 0) {
					hg.visitCase(nextCaseId);
				}
			})
			// .status()
			// .then((statusCode) => {
			// 	nextCaseId = rawCaseId - 1;

			// 	if (nextCaseId > 0) {
			// 		hg.visitCase(nextCaseId);
			// 	}
			// })
		;
	
	}
};

it always dies on the .open().

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant