gpt4 book ai didi

javascript - res.send 不是函数

转载 作者:太空宇宙 更新时间:2023-11-04 02:49:34 27 4
gpt4 key购买 nike

我正在进行 api 调用并接收数据,但是,我无法将数据发送回我的 js 文件。我尝试使用 res.send 但出现错误。我似乎不知道如何将信息发送回 javascript 文件。 (我从请求链接中取出了 key 。但是,出于安全原因,我从 api 调用中获取数据)。我遇到的唯一问题是将数据返回到前端 javascript 文件。

这是发送原始请求的 Javascript 文件:

/ ********** options button function makes api call to get selected cities forecast *****************

function getCityForecast(e){


var id = document.getElementById('cities');
var getValue = id.options[id.selectedIndex].value;
var suffix = getValue + ".json";

var newObj = JSON.stringify({link : suffix});

var xhr = new XMLHttpRequest();

xhr.open("POST", "http://localhost:3000/", true);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.send(newObj);

xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
console.log(xhr.response);
console.log('recieved');
} else {
console.log('error');
}
}
}

我的 server.js 文件如下所示:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var http = require('http');
var path = require('path');
var request = require('request');


// ****************** Middle Ware *******************
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use(express.static(__dirname + '/public'));



var retrievedString;
// **************** Post Request *******************
app.post('/', function(req, res){

var link = "http://api.wunderground.com/api/key/forecast";
retrievedString = link.concat(req.body.link);

request = http.get(retrievedString , function(res){
var body = '';

res.on('data', function(data){
body += data;
});

res.on('end', function(){
var parsed = JSON.parse(body);
console.log(parsed.forecast.txt_forecast);
res.send(parsed.forecast.txt_forecast);
});
})

.on('error', function(e) {
console.log("Got error: " + e.message);
});
});

app.listen(3000, function() { console.log('listening')});

最佳答案

您正在重载变量 res 的定义,这也是您为 Express 路由处理程序方法调用的响应变量。在请求的回调函数中,为该变量使用不同的名称 - 例如:

request = http.get(retrievedString , function(resDoc){

关于javascript - res.send 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41992763/

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