вызов API не происходит в прокси узла сервера - PullRequest
0 голосов
/ 12 июня 2019

обновление 1:

  • после изменения пути API я могу выполнить вызов API, но я получаю эту ошибку (node:13480) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 4): RangeError: Invalid status code: respose utilcallService if--=->
  • Указывает на мой файл Resposne Util.js.
  • предоставив мой фрагмент кода ниже

логи сервера

  [nodemon] restarting due to changes...
[nodemon] starting `node node server/index.js`
index DocumentService---> function router(req, res, next) {
    router.handle(req, res, next);
  }
index allFileDataService---> function router(req, res, next) {
    router.handle(req, res, next);
  }
controllers---> [ 'C:/codebase/server/controllers/root.js' ]
server is listening on 1010
  callService ===>  /ewwewe/ewd
  URL ===>  http://wqqwdqw.com/ewwewe/ewd
allFileData 40---> smart
for allFileData Testing0---> smart
AppConstants.GET_JWT_TOKEN_URL---> https://credentials.login.js
jwt then-----> sdsd
then formatUrl ---> http://sports.com/run/play
allFileData suceess then0--->
  callService ===>  /sdsssd/sdsdsd/data
else  else if contentcatalogs responseutil.jsURL ===>  http://sports.com/run/play
  URL ===>  http://sports.com/run/play
express deprecated res.send(status, body): Use res.status(status).send(body) instead server\services\utils\ResponseUtil.js:58:30
(node:13480) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): RangeError: Invalid status code:  respose utilcallService if--=->
(node:13480) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
allFileData 40---> smart
for allFileData Testing0---> smart
AppConstants.GET_JWT_TOKEN_URL---> https://credentials.login.js
jwt then-----> sdsd
then formatUrl ---> http://sports.com/run/play
allFileData suceess then0--->
  callService ===>  /sdsssd/sdsdsd/data
else  else if contentcatalogs responseutil.jsURL ===>  http://sports.com/run/play
  URL ===>  http://sports.com/run/play
(node:13480) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 4): RangeError: Invalid status code:  respose utilcallService if--=->

ResponseUtil.js

callService: (res, url, uri) => {

      console.log("  callService ===> ", url);



      var formatUrl;

      if (uri) {
        formatUrl = uri + url;
      }
      else if (url == "/sdklsdklsd/sdklsdkllsdk/sdklklklsd") {
        formatUrl = AppConstants.REST_API_DNS_NAME_CONTENT_CENTRAL + url;
              console.log("  else if responseutil.jsURL ===> ", formatUrl);


      }else if (url == "/sdsssd/sdsdsd/data") {
        formatUrl = AppConstants.REST_API_DNS_NAME_CONTENT_CENTRAL + url;
              console.log("else  else if contentcatalogs responseutil.jsURL ===> ", formatUrl);


      } else {
        formatUrl = AppConstants.REST_API_DNS_NAME + url;
      }

      console.log("  URL ===> ", formatUrl);

      process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
      //console.log( " local Token => ", authJwtToken);
      if (!credentials.auth.jwtToken) {

        axios.get(AppConstants.GET_JWT_TOKEN_URL, {
          auth: {
            username: credentials.auth.racfId, password: credentials.auth.password
          }
        })
          .then((jwtResponse) => {
            //console.log('------jwtResponse Res------>>>> ', jwtResponse)
            var jwtToken = `Bearer ${jwtResponse.data.jwt}`;
            //console.log('------Token Res------>>>> ', jwtToken)
            axios.get(formatUrl, { headers: { "Authorization": jwtToken } })
              .then((response) => {
                return res.json(response.data);
              })
              .catch((error) => {
                if (error.response) {
                  return res.send(" respose utilcallService if--=->",error.response.data);
                }
                else {
                  return res.send("callService else--=->",error);
                }

              })

          })
          .catch((error) => {
            return res.send("callService second catch",error);
          })
          ;
      }
      else {
        var authJwtToken = `Bearer ${credentials.auth.jwtToken}`;
        axios.get(formatUrl, { headers: { "Authorization": authJwtToken } })
          .then((response) => {
            return res.json(response.data);
          })
          .catch((error) => {
            if (error.response) {
              return res.send(error.response.data);
            }
            else {
              return res.send(error);
            }
          })

      }

    },
  • Я выполняю вызов post api через метод handleKeyPress. http://sports.com/run/play
  • Я пытаюсь достичь через прокси узла.
  • сейчас звонок происходит на стороне клиента, но я получаю 404 Not Found
  • Я отладил на стороне сервера и там вызов API не происходит.
  • если я добавлю консоль внутри этого метода, ничего не печатается
  • даже я добавил правильные маршруты в index.js сервера
  • подскажите, как это исправить.
  • с указанием моего клиента, сервера и журналов ниже

клиентский вызов API

handleKeyPress = e => {

        console.log("handleKeyPress--->", e);


        if (e.keyCode === 13) {
            this.setState({ open: false });
            if (e.target.value) {
                this.setState({
                    display: !this.state.display,
                    chipName: this.state.value,
                    imageName: this.state.value,
                });
                // this.props.selectedValue(this.state.value);
            }
        }

        this.props.actions.allFileDataData(this.getResultData);
    };

файл действий

export function allFileDataData(callback) {

    console.log(" downloadDocumentData----> ");



    var height = 'gr';
    var searchVal = height;
    var searchMode = 'smart';

    //we are using this replace method to hack the name search Mode
    height = height.replace('/', '%2F');
    height = height.replace('#', '%23');
    height = height.replace('+', '%2B');
    height = height.replace('.', '%2E');
    height = height.replace(/'|-/g, "");
    height = height.replace(/ /g, "%20");

    let environment = globalConfig.getConfig('environment');
    searchVal = searchVal.replace(/'|-/g, "");

    var url = `/psv/api/v1/allFileData/${searchMode}/${height}`;
    console.log(" fetchProviderData Url---> ", url);
    if (environment !== "local") {
        url = `/psv/api/v1/allFileData/${searchMode}/${searchVal}`;
        console.log(" inside if fetchProviderData Url---> ", url);
    }
    console.log(" Url----> ", url, searchMode, searchVal, height);

    const apiValues = {};

    let skysData = [];
    let skyData = {};

    skyData.name = 'Tax ID';
    skyData.value = '800346628'; //providerPimsIds;
    skysData.push(skyData);

    apiValues.fieldFilters = skysData;



    console.log("skyDatas--->", apiValues);
    const URL = `http://sports.com/run/play`;

    return (dispatch) => {

        axios
            .post(URL, apiValues)
            .then(response => {
                console.log("then this.props--->", this);
                //  callback(response);

                console.log('success postpostByContractFilterUploadLOA');
            }).catch(err => {


                console.log('error postByContractFilter');

            });

    };
}

Сервер

index.js

const allFileDataService = require('./allFileData/allFileData');
console.log("index allFileDataService--->", allFileDataService); 

index allFileDataService---> function router(req, res, next) {
    router.handle(req, res, next);
  }

router.use('/allFileData', allFileDataService);

allFileData.js

const express = require('express');
const axios = require('axios');
const mime = require('mime-types');

const router = express.Router();
const ResponseUtil = require('../../utils/ResponseUtil');
const AppConstants = require('../../../constants/AppConstants');

const credentials = require('../../../internals/credentials.json');

const memberGroupingHelper = require('../../wewewe/wewewewe/memberGrouping');
const exportHelper = require('../../wewewe/wewewewe/pcpExportHelper');
const formatExportData = require('../../wewewe/wewewewe/formatExportData');

const pcpCommonHelper = require('../../wewewe/wewewewe/pcpCommonHelper');
const pcpProvDataHelper = require('../../helpers/group/getProvData');


const { PcpAggregateProvidersApi } = require('erererer');


router.get('/:searchMode/:height', (req, res, next) => {


    const { originalUrl } = req;


    const mode = req.params.searchMode;

    const value = encodeURIComponent(req.params.height);


    console.log("allFileData 40--->", mode);
    console.log("for allFileData Testing0--->", mode);

    const url = `/sdsssd/sdsdsd/data`;
    console.log("AppConstants.GET_JWT_TOKEN_URL--->", AppConstants.GET_JWT_TOKEN_URL);

    var formatUrl = AppConstants.REST_API_DNS_NAME_CONTENT_CENTRAL + url;
    const apiValues = {};

    let skysData = [];
    let skyData = {};

    skyData.name = 'dfdfdf ID';
    skyData.value = 'dfdfdfdff'; //providerPimsIds;
    skysData.push(skyData);

    apiValues.fieldFilters = skysData;


    axios.get(AppConstants.GET_JWT_TOKEN_URL, {
        auth: {
            username: credentials.auth.racfId, password: credentials.auth.password
        }
    })
        .then((jwtResponse) => {
            console.log("jwt then----->", jwtResponse.data.jwt);
            console.log('then formatUrl --->', formatUrl);
            return axios.post(formatUrl, apiValues, {
                headers: {
                    "Authorization": `Bearer ${jwtResponse.data.jwt}`,
                    "Content-Type": 'application/json'

                }
            })

                .then((response) => {
                    // try {
                    console.log("allFileData suceess then0--->");

                    return ResponseUtil.callService(res, url);

                })

                .catch((e) => {
                    // Catch any error that occurred in the promise chain...
                    if (e.response) {
                        return res.status(e.response.status).send(e.response.data);
                    }
                    return res.status(500).send(e.message || 'Something wrong');
                });

        });


    // ResponseUtil.callService(res, url);



});

module.exports = router;

журналы сервера

[nodemon] restarting due to changes...
[nodemon] restarting due to changes...
[nodemon] starting `node node server/index.js`
index DocumentService---> function router(req, res, next) {
    router.handle(req, res, next);
  }
index allFileDataService---> function router(req, res, next) {
    router.handle(req, res, next);
  }
controllers---> [ 'C:/codebase/server/controllers/root.js' ]
server is listening on 1010
  callService ===>  /ewwewe/ewd
  URL ===>  http://wqqwdqw.com/ewwewe/ewd

1 Ответ

1 голос
/ 12 июня 2019

Согласно вашему коду, вы отправляете HTTP-запрос на http://sports.com/run/play, а не на свой собственный сервер:

const URL = `http://sports.com/run/play`;
return (dispatch) => {
        axios
            .post(URL, apiValues)
            //...
       };

Поэтому на стороне сервера ничего не происходит.Когда GET http://sports.com/run/play возвращает 404, вы также получаете ошибку 404 Not Found.

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