TypeError: путь запроса содержит неэкранированные символы, как я могу исправить это

/*Making http request to the api (Git hub)
create request
parse responce
wrap in a function
*/
var https = require("https");

var username = 'lynndor';
//CREATING AN OBJECT
var options = {
    host: 'api.github.com',
    path: ' /users/'+ username +'/repos',
    method: 'GET'
};

var request = https.request(options, function(responce){
    var body = ''
    responce.on("data", function(chunk){
        body += chunk.toString('utf8')
    });
    responce.on("end", function(){
        console.log("Body", body);
    });
});
request.end();

Я пытаюсь создать запрос к git hub api, цель состоит в том, чтобы получить репозиторий списка для указанного вами пользователя, но я продолжаю получать вышеупомянутую ошибку, пожалуйста, помогите

Ответ 1

Ваша переменная path содержит пробел

path: ' /users/'+ username +'/repos',

Вместо этого он должен быть

path: '/users/'+ username +'/repos',

Ответ 2

для другой ситуации может быть полезно

Функция JavaScript encodeURI()

var uri = "my test.asp?name=ståle&car=saab";
var res = encodeURI(uri); 

Ответ 3

Используйте encodeURIComponent() для кодирования URI

и decodeURIComponent() для декодирования URI

Это потому, что в вашем URI есть зарезервированные символы. Вам нужно будет кодировать URI с помощью встроенной функции JavaScript-кодирования encodeURIComponent()

var options = {
    host: 'api.github.com',
    path: encodeURIComponent('/users/'+ username +'/repos'),
    method: 'GET'
};

для декодирования закодированного компонента decodeURIComponent(url) вы можете использовать decodeURIComponent(url)