Browse Source

Merge pull request #39 from floatdrop/master

Improve error message on not 2xx code
http2
Sindre Sorhus 10 years ago
parent
commit
c968d5b7da
  1. 5
      index.js
  2. 1
      package.json
  3. 29
      test/test-error.js

5
index.js

@ -11,6 +11,7 @@ var read = require('read-all-stream');
var timeout = require('timed-out');
var prependHttp = require('prepend-http');
var lowercaseKeys = require('lowercase-keys');
var status = require('statuses');
function got(url, opts, cb) {
if (typeof opts === 'function') {
@ -65,7 +66,7 @@ function got(url, opts, cb) {
var res = response;
// redirect
if (statusCode >= 300 && statusCode < 400 && 'location' in res.headers) {
if (status.redirect[statusCode] && 'location' in res.headers) {
res.resume(); // Discard response
if (++redirectCount > 10) {
@ -85,7 +86,7 @@ function got(url, opts, cb) {
if (statusCode < 200 || statusCode > 299) {
read(res, encoding, function (error, data) {
var err = error || new Error('Couldn\'t connect to ' + url + '.');
var err = error || new Error(url + ' response code is ' + statusCode + ' (' + status[statusCode] + ')');
err.code = statusCode;
cb(err, data, response);
});

1
package.json

@ -45,6 +45,7 @@
"object-assign": "^2.0.0",
"prepend-http": "^1.0.0",
"read-all-stream": "^1.0.0",
"statuses": "^1.2.1",
"timed-out": "^2.0.0"
},
"devDependencies": {

29
test/test-error.js

@ -0,0 +1,29 @@
'use strict';
var tape = require('tape');
var got = require('../');
var server = require('./server.js');
var s = server.createServer();
s.on('/', function (req, res) {
res.statusCode = 404;
res.end('not');
});
tape('setup', function (t) {
s.listen(s.port, function () {
t.end();
});
});
tape('error message', function (t) {
got(s.url, function (err) {
t.ok(err);
t.equal(err.message, 'http://localhost:6767 response code is 404 (Not Found)');
t.end();
});
});
tape('cleanup', function (t) {
s.close();
t.end();
});
Loading…
Cancel
Save