Как вызвать Restfull API внутри маршрутизатора с помощью Express

Я хочу получить данные по этой ссылке: https://api.rajaongkir.com/starter/cost с помощью express.js.

Я создал веб-сайт одностраничного приложения, используя react.js для интерфейса, поэтому мне нужно вызвать этот маршрут: /shipping/check/cost в моем бэкэнде для получения данных. но я не знаю, как запросить внутреннюю экспресс-доставку маршрутизатора.

Я никогда не делал Restful API с чужого сайта. Я просто скопировал то, что было в документации, но в документации использовал node.js, а не express.js. https://rajaongkir.com/dokumentasi/starter#cost-response

когда я запускаю это, я ничего не получаю.

Мои маршруты

import {Router} from 'express';
import * as ShippingRouter from './controller'

const routes = new Router();

routes.post('/shipping/check/cost',ShippingRouter.checkCost);

export default routes;

Контроллер

import db from '../../config/conn';
import keys from '../../config/keys';
import jwt from 'jsonwebtoken';
import qs from 'querystring';
import request from 'request';
export const checkCost =(req,res)=>{
    var options = {
        "method": "POST",
        "hostname": "api.rajaongkir.com",
        "port": null,
        "path": "/starter/cost",
        "headers": {
            "key": "mykey",
            "content-type": "application/x-www-form-urlencoded"
        }
    };
   var reqCost= https.request(options,function(ress){
       var chunks = [];

       ress.on("data", function (chunk) {
           chunks.push(chunk);
       });

       ress.on("end", function () {
           var body = Buffer.concat(chunks);
           res.json(body.toString());
       });
    })
    reqCost.write(qs.stringify({
        origin: '501',
        destination: '114',
        weight: 1700,
        courier: 'jne'
    }));
    reqCost.end();


}

🤔 А знаете ли вы, что...
JavaScript обеспечивает обработку ошибок с использованием конструкции try...catch.


66
1

Ответ:

Первое, что я хотел бы проверить, это правильность используемого HTTP-глагола POST. Вы сказали, что хотите получить данные из API, в этом случае вы должны использовать GET вместо POST (дополнительную информацию см. в документации по API).

Кроме того, пожалуйста, проверьте этот репозиторий, где я использую экспресс и как я обрабатываю вызовы.