客户端对服务器的请求

时间:2018-10-26 18:28:00

标签: javascript node.js

客户端功能正在从服务器请求数据。我将此功能导入了我需要使用的其他文件中。一切正常。但是我不明白为什么我在命令提示符“ Undefined”上收到。我已经评论了所有console.log,但它仍在继续。我不确定进出口是否有问题?

这是我的代码:

// tstReq.js

function getData(iccid) {
toString(iccid);
var http = require('http');
var jasParseData;

var options = {
    host: 'demo8620001.mockable.io',
    port: 80,
    path: '/Api3',
    method: 'get'
  };

  http.request(options, function(res) {
    //console.log('STATUS: ' + res.statusCode);
    //console.log('HEADERS: ' + JSON.stringify(res.headers));
    res.setEncoding('utf8');
    res.on('data', function (chunk) {
      //console.log('BODY: ' + chunk);
      josParseData= JSON.parse(chunk);
      for(i = 0, len = Object.keys(josParseData.iccid[i]).length; i<=len; i++) {
        //console.log('JSON.parse:',josParseData.iccid[i]);
        //console.log("iccid:     ",iccid);
        if (josParseData.iccid[i] === iccid) {    // Only printed match iccid
          console.log('JSON.parse:',josParseData.iccid[i]);
          console.log("iccid:     ",iccid);
        }
        if (josParseData.iccid[i] === iccid) {
          console.log("Valid Jasper", i+1);
          console.log('\n');
        }
        else{
          // console.log ("Invlid Jasper");
        }
        //console.log('\n');
      }

      //console.log('\n');



    });
  }).end();

};

module.exports = getData; 

这是我使用导出函数的代码:

const fs = require('fs');
var parse = require('csv-parse');
var validateICCID = require('./funcValidateId.js');
var getData = require('./tstReq.js');

fs.createReadStream('iccid2.csv')
.pipe(parse({delimiter: ':'}))
.on('data',function(csv) {
    csvrow= csv.toString();
    console.log('\n');
    console.log(getData(csvrow));
    console.log('\n');

});

1 个答案:

答案 0 :(得分:0)

您可能会变得不确定,因为getData函数没有return语句。这并不意味着您的功能已损坏,只是不直接返回结果。

如果要记录getData的结果,则需要返回http.request,并且需要通过返回回调来解析http.request。

此外,我注意到您声明var jasParseData可能是指josParseData。