Как вызвать restfull API внутри роутера используя express - PullRequest
0 голосов
/ 27 января 2019

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

Я создал веб-сайт одностраничного приложения, используя activ.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();


}

1 Ответ

0 голосов
/ 27 января 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...