Javascript 客户端对服务器的请求
客户端函数正在从服务器请求数据。我将此函数导入到需要使用它的其他文件中。它工作得很好。但我不明白为什么在命令提示符下收到“Undefined”。我已经评论了所有的console.log,但它仍然会出现。我不确定进出口是否有问题 这是我的密码: //tstReq.jsJavascript 客户端对服务器的请求,javascript,node.js,Javascript,Node.js,客户端函数正在从服务器请求数据。我将此函数导入到需要使用它的其他文件中。它工作得很好。但我不明白为什么在命令提示符下收到“Undefined”。我已经评论了所有的console.log,但它仍然会出现。我不确定进出口是否有问题 这是我的密码: //tstReq.js function getData(iccid) { toString(iccid); var http = require('http'); var jasParseData; var options = { host:
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;
由于函数getData没有return语句,因此可能会出现未定义的情况。这并不意味着你的函数坏了,只是没有直接返回结果 如果要记录getData的结果,需要返回http.request,并且需要通过在回调中返回来解析http.request
另外,我注意到您声明了
var jasParseData
您可能指的是josParseData。@Barbar这个问题太宽泛了,而且,就目前而言,它也没有明确的问题陈述。如果您不立即进行更改,此问题将被关闭。您是否从控制台调用该函数?如果是,则功能工作的结果是undefined
。此外,在输出上还有一个链接,您可以看到它从哪个位置返回了未定义的
(如果这不是函数的返回值)。我已经从console.log中删除了函数,但仍然存在相同的问题。我刚刚注意到,当我读取包含7个iccid编号的csv文件时,它打印了7次“未定义”。我已将jasParseData替换为josParseData,并在函数中添加了“return 0”,但仍然存在相同的“未定义”问题。
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');
});