gpt4 book ai didi

javascript - 错误: cannot read property 'get' of undefined - HTTPS in node.js

转载 作者:太空宇宙 更新时间:2023-11-04 00:47:23 25 4
gpt4 key购买 nike

我有一个app.js,它构建了一个d3-Graph。在此图中有一个更新按钮。单击按钮时,我想调用另一个 node.js 文件 data.js 的函数。

Update-Button looks like this:

d3.select("#updatebutton").on("click", function(e) {
try{
getJSON();
}
catch (e) {
alert('Error: ' + e);
}
window.parent.location = window.parent.location.href;
});

如果我点击更新按钮,则会抛出错误:

Error: cannot read property 'get' of undefined

get 是指 https 请求,在 data.js 中执行。实现如下:

var https = require('https');
function getJSON() {
var req = https.get(options, function(response) {
// handle the response
var res_data = '';
response.on('data', function(chunk) {
res_data += chunk;
});
response.on('end', function() {
//do anything with received data
});
});
req.on('error', function(e) {
console.log("Got error: " + e.message);
});
req.end();

}

如果我自己运行data.js(cmd:node data.js),它工作正常!所以 https-Request 本身是好的。但是,如果我从另一个文件 app.js 调用 getJSON(),我会收到上面显示的错误。

如何解决这个问题?

最佳答案

var https = require('https'); function getJSON() {...} 是客户端的代码吗?

我看到您正在从客户端代码调用 getJSON();,但看起来其他代码应该在服务器端,因此客户端代码需要调用某种 API,并且该 API 将返回 function getJSON() {...} 函数的结果,因此,例如,不是客户端调用 getJSON();,而是 $.get('/api/端点', function(data) { ... });

<小时/>

编辑

这是一个使用 Express 的 API 示例,因此您需要将其添加到 dependency Node 中的 package.json 中 > "express": "~4.13.1", 并运行 npm install,然后运行 ​​node app.js(假设您将此代码放入 app.js 文件中)

var express = require('express');
var app = express();

app.get('/api/data', function(req, res) {
// you stuff goes here, getJSON function, etc
// ...
// ...

var sample = {id: 5, name: 'test'};
res.json(sample);
});

app.listen(process.env.PORT || 3000);

并且您的客户端代码需要调用该 API,这可以通过 jQuery 完成,例如这样

$.get('http://localhost:3000/api/data', function(data){
// handle that 'data' on the client side here
// ...
// ...
});

关于javascript - 错误: cannot read property 'get' of undefined - HTTPS in node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34063308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com