对新生成的jwt令牌进行硬编码,但仍然没有成功

时间:2019-06-06 20:30:24

标签: javascript node.js express jwt axios

  • 我有一个有效的代码库,他们已经在其中设置了节点代理和jwt。
  • 但是当我尝试使用axios进行新的api调用时,出现错误 Error: connect ECONNREFUSED 127.0.0.1:80
  • 所以我调试了代码,并对新生成的jwt令牌进行了硬编码。
  • 但我仍然面临这个问题。
  • 你能告诉我如何解决它吗?
  • 也在下面提供我的axios调用文件app.js和输出
  • 我缺少任何配置

sports.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('../../helpers/rank/memberGrouping');
const exportHelper = require('../../helpers/rank/rankExportHelper');
const formatExportData = require('../../helpers/rank/formatExportData');

const rankCommonHelper = require('../../helpers/rank/rankCommonHelper');
const rankProvDataHelper = require('../../helpers/group/getProvData');

//const aggregateHelper = require('../../helpers/group/aggregateFilter');

const { rankAggregatelastrsApi } = require('jump-svc-utils');


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

  const { originalUrl } = req;

  //console.log(" originalUrl  ", originalUrl);

  const mode = req.params.searchMode;

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


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





  const url = `/jkjkjk/sdjksdjkjksdjksd/sdklsdlksdklsdkl`;

  axios.get(AppConstants.GET_JWT_TOKEN_URL, {
    auth: {
      username: credentials.auth.racfId, password: credentials.auth.password
    }
  })
    .then((jwtResponse) => {
     // var jwtToken = `Bearer ${jwtResponse.data.jwt}`;
            var jwtToken = `Bearer 787878bjhbnmnmmwqdqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqw`;


      axios.get(url, { headers: { "Authorization": jwtToken } })

        .then((response) => {
          console.log("document then0--->", response);
          const file = Buffer.from(response.data.content, 'base64');
          const fileType = mime.contentType(response.data.contentInfo.fileType);
          const fileExtension = response.data.contentInfo.fileType.toLowerCase();
          const fileName = `filename=${response.data.contentInfo.id}.${fileExtension}`;
          res.set('Content-Type', fileType);
          res.set('Content-disposition', `attachment; ${fileName}`);
          res.send(file);
        })


        .catch((e) => {
          console.log("e catch document0--->", e);
          console.log("e.message catch document0--->", e.message);

          console.log("catch document--->", e.response);

          if (e.response) {
            return res.status(e.response.status).send(e.response.data);
          }
          res.status(500).send(e.message || 'Something wrong');
        });
    });


  ResponseUtil.callService(res, url);



});

module.exports = router;

index.js

const express = require('express')
const app = express()
const port = 1010
const jumpServices = require('./services/jump');
const compression = require('compression');
var BodyParser = require('body-parser');
const glob = require('glob');
const path = require('path');



app.use('/jump/api/v1', jumpServices);

app.use(BodyParser.json());
app.use(BodyParser.urlencoded({
  extended: true
}));

//app.use(compress())

// app.use(compression());

// include all the controllers
const controllers = glob.sync(path.join(__dirname, '/controllers/**/*.js'));
console.log("controllers--->", controllers);
controllers.forEach((controllerFileName) => {
  require(controllerFileName)(app); //eslint-disable-line
});

app.listen(port, (err) => {
  if (err) {
    return console.log('something bad happened', err)
  }

  console.log(`server is listening on ${port}`)
}) 

日志

npm start



> lastr-connect-middleware@0.2.0 start C:\codebase\jkjkjkjkkj
> nodemon node server/index.js

[nodemon] 1.17.3
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node node server/index.js`
controllers---> [ 'C:/codebase/jkjkjkjkkj/server/controllers/root.js' ]
server is listening on 1010
document 40---> Smart
for document Testing0---> Smart
  URL ===>  http://sports.com/jkjkjk/sdjksdjkjksdjksd/sdklsdlksdklsdkl
  URL ===>  http://sports.com/ewjwejkwejk/weweweweklklklkl/weklklklklkl/weklklkl
e catch document0---> { Error: connect ECONNREFUSED 127.0.0.1:80
    at Object._errnoException (util.js:1024:11)
    at _exceptionWithHostPort (util.js:1046:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1182:14)
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 80,
  config:
   { adapter: [Function: httpAdapter],
     transformRequest: { '0': [Function: transformRequest] },
     transformResponse: { '0': [Function: transformResponse] },
     timeout: 0,
     xsrfCookieName: 'XSRF-TOKEN',
     xsrfHeaderName: 'X-XSRF-TOKEN',
     maxContentLength: -1,
     validateStatus: [Function: validateStatus],
     headers:
      { Accept: 'application/json, text/plain, */*',
        Authorization: 'Bearer 787878bjhbnmnmmwqdqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqwqw',
        'User-Agent': 'axios/0.17.1' },
     method: 'get',
     url: '/jkjkjk/sdjksdjkjksdjksd/sdklsdlksdklsdkl',
     data: undefined },
  request:
   Writable {
     _writableState:
      WritableState {
        objectMode: false,
        highWaterMark: 16384,
        finalCalled: false,
        needDrain: false,
        ending: false,
        ended: false,
        finished: false,
        destroyed: false,
        decodeStrings: true,
        defaultEncoding: 'utf8',
        length: 0,
        writing: false,
        corked: 0,
        sync: true,
        bufferProcessing: false,
        onwrite: [Function: bound onwrite],
        writecb: null,
        writelen: 0,
        bufferedRequest: null,
        lastBufferedRequest: null,
        pendingcb: 0,
        prefinished: false,
        errorEmitted: false,
        bufferedRequestCount: 0,
        corkedRequestsFree: [Object] },
     writable: true,
     domain: null,
     _events:
      { response: [Function: handleResponse],
        error: [Function: handleRequestError] },
     _eventsCount: 2,
     _maxListeners: undefined,
     _options:
      { maxRedirects: 21,
        maxBodyLength: 10485760,
        protocol: 'http:',
        hostname: null,
        port: null,
        path: '/jkjkjk/sdjksdjkjksdjksd/sdklsdlksdklsdkl',
        method: 'get',
        headers: [Object],
        agent: undefined,
        auth: undefined,
        nativeProtocols: [Object],
        pathname: '/tes/api/v1/ecmsdocuments/',
        search: '?id=a2c93187-5422-46c7-bcf7-e663c28dcd2e' },
     _ended: true,
     _ending: true,
     _redirectCount: 0,
     _redirects: [],
     _requestBodyLength: 0,
     _requestBodyBuffers: [],
     _onNativeResponse: [Function],
     _currentRequest:
      ClientRequest {
        domain: null,
        _events: [Object],
        _eventsCount: 6,
        _maxListeners: undefined,
        output: [],
        outputEncodings: [],
        outputCallbacks: [],
        outputSize: 0,
        writable: true,
        _last: true,
        upgrading: false,
        chunkedEncoding: false,
        shouldKeepAlive: false,
        useChunkedEncodingByDefault: false,
        sendDate: false,
        _removedConnection: false,
        _removedContLen: false,
        _removedTE: false,
        _contentLength: 0,
        _hasBody: true,
        _trailer: '',
        finished: true,
        _headerSent: true,
        socket: [Object],
        connection: [Object],
        _header: 'GET /jkjkjk/sdjksdjkjksdjksd/sdklsdlksdklsdkl HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nAuthorization: Bearer eyJraWQiOiJzbSIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJhcHAiOiJzdmMtcG1pbG9naW4tdGVzdCIsInN1YiI6Imk4Y3giLCJhdWQiOiJwbWlsb2dpbi10c3RhLmJjYnNmbC5jb20iLCJzcmMiOiJwbWlsb2dpbi10c3RhLmJjYnNmbC5jb20iLCJyb2xlcyI6WyJDTj1EYXRhIFNlcnZpY2VzIEVudGl0bGVtZW50cyAtIEdlbmVyYWwgLSBUZXN0LE9VPVJlcXVlc3RlZCxPVT1Hcm91cHMsREM9YmNic2ZsLERDPWNvbSIsIkNOPVByb3ZpZGVyX1NlcnZpY2VzX0VudGl0bGVtZW50cy1EZW1vZ3JhcGhpY19VcGRhdGUtVGVzdCxPVT1SZXF1ZXN0ZWQsT1U9R3JvdXBzLERDPWJjYnNmbCxEQz1jb20iLCJDTj1Qcm92aWRlcl9TZXJ2aWNlc19FbnRpdGxlbWVudHMtR2VuZXJhbF9JbnF1aXJ5LVRlc3QsT1U9UmVxdWVzdGVkLE9VPUdyb3VwcyxEQz1iY2JzZmwsREM9Y29tIiwiQ049UHJvdmlkZXJfU2VydmljZXNfRW50aXRsZW1lbnRzLU5ldHdvcmtfVXBkYXRlLVRlc3QsT1U9UmVxdWVzdGVkLE9VPUdyb3VwcyxEQz1iY2JzZmwsREM9Y29tIl0sImlzcyI6IlBNSS1UZXN0IiwiZXhwIjoxNTU5ODQ2OTcwLCJpYXQiOjE1NTk4NDUxNzAsIlNlc3Npb25JRCI6IkJBNmxlVjhPZHZ5SEswXC95dCtCV1wvbHJ4MUI4PSIsImp0aSI6IjMwOWE5ZjQwLTQ0ZmUtNDI3Mi1iMzkzLTdlNjQyZDlkMWVjYyJ9.JTPPSZqHNAxH_KAdeSKbVhzO37_Jj9Umd75ZSCpaW2ayFBoPLtLFb4Jd7sqFyebSG4WaSKszLQ4xgu3sXLE_NL-stQalqx6x0XSkMhm_ifcqIoLu7I9MV02_U2vHmKp9uu8H8aRRyH1SwNoQfxj_CgIHPAqO4oo5TbKWKgP75gXDwNVXF9nyaZ3LPivmcEx3ivLxj6TJ-ghOO3HYEPzVkl1ajbS0xYu2YwjEBdAZbQyC18O2-bb3HopVigldFf_71Sei_8UoB1soG4A3t-guij4_ayedPFwPNS6m7_wnW6wTifUsDC44CUEAtc6L_P-Tjx1qm97Bk3cDwy-1DOhFmQ\r\nUser-Agent: axios/0.17.1\r\nHost: localhost\r\nConnection: close\r\n\r\n',
        _onPendingData: [Function: noopPendingOutput],
        agent: [Object],
        socketPath: undefined,
        timeout: undefined,
        method: 'GET',
        path: '/jkjkjk/sdjksdjkjksdjksd/sdklsdlksdklsdkl',
        _ended: false,
        res: null,
        aborted: undefined,
        timeoutCb: null,
        upgradeOrConnect: false,
        parser: null,
        maxHeadersCount: null,
        _redirectable: [Circular],
        [Symbol(outHeadersKey)]: [Object] },
     _currentUrl: 'http:/jkjkjk/sdjksdjkjksdjksd/sdklsdlksdklsdkl' },
  response: undefined }
e.message catch document0---> connect ECONNREFUSED 127.0.0.1:80
catch document---> undefined
(node:13240) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: Can't set headers after they are sent.
(node:13240) [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.

1 个答案:

答案 0 :(得分:0)

您是否正在指定发出Axios请求的端口?

分析代码的一部分,该代码段AppConstants.GET_JWT_TOKEN_URL将调用AppConstants对象的URL。

不指定端口的情况,请尝试将位于AppConstants.GET_JWT_TOKEN_URL中的URL更改为{{ requestUrl :1010}}

谢谢。