Подтвердить что ты не робот

Простые API-вызовы с Node.js и Express

Я только начинаю с Node, API и веб-приложений.

Я понимаю основные работы Node.js и Express, но теперь я хочу начать звонить другим API-интерфейсам и делать что-то со своими данными.

Можете ли вы набросить основные HTTP-запросы и как захватить/проанализировать ответы в Node? Я также заинтересован в добавлении определенных заголовков к моему запросу (изначально я использую http://www.getharvest.com API, чтобы хрустнуть данные моего временного листа).

P.S. Это кажется простым, но многие поиски не выявили ничего, что отвечало на мой вопрос. Если это обман, сообщите мне, и я удалю.

Спасибо!

4b9b3361

Ответ 1

Вы не можете получить материал с помощью Express, вам следует использовать библиотеку Mikeal request для этой конкретной цели.

API для этой библиотеки очень прост:

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body) // Print the google web page.
  }
})

Изменить: вам лучше использовать эту библиотеку вместо http по умолчанию, потому что она имеет гораздо более удобный API и некоторые дополнительные функции (она даже поддерживает файлы cookie).

Ответ 2

Вы можете использовать http-клиент:

var http = require('http');
var client = http.createClient(3000, 'localhost');
var request = client.request('PUT', '/users/1');
request.write("stuff");
request.end();
request.on("response", function (response) {
  // handle the response
});

Кроме того, вы можете установить заголовки, как описано в документации api:

client.request(method='GET', path, [request_headers])

Ответ 3

Требуется установить два пакета.

npm install ejs 
npm install request

server.js

var request = require('request');
app.get('/users', function(req, res) {
    request('https://jsonplaceholder.typicode.com/users', function(error, response, body) {
        res.json(body)
    });
});

index.ejs

$.ajax({
    type: "GET",
    url: 'http://127.0.0.1:3000/posts',
    dataType: "json",
    success: function(res) {
        var res_data = JSON.parse(res);
        console.log(res_data);
    }
});

Выход

введите описание изображения здесь