gpt4 book ai didi

javascript - 服务器和客户端之间的响应方法出现 Node js错误

转载 作者:行者123 更新时间:2023-12-03 08:57:42 24 4
gpt4 key购买 nike

嘿,我目前正在使用 Node.js 开发我的第一个真正的网页

我使用 Express、ejs 进行布局,使用 redis 作为数据库。我试图通过我的客户端从我的索引页面发送 ajax 调用到我的服务器,在那里使用 ajax 调用并将最终的 json 传递回我的客户端,我尝试在下一个 ejs 页面上呈现它。

Ajax :

$(function(){
$(".search").click(function() {
$.ajax({
method: "POST",
url: "/search",
cache: false,
data: {ort: "hierundda", activity: "Wandern", datum: "01.09.2015"},
dataType: "json",
success: function(data){
alert('Success!')
}
, error: function(jqXHR, textStatus, err){
alert('text status '+textStatus+', err '+err)
}
});
});
});

我的服务器路由:

rest.post("/search", jsonParser, function(req, res){


/*some database action with redis */
res.json(dataJson);
});
});

我的客户路线:

app.post('/search', jsonParser, function(req,res){
var test = JSON.stringify(req.body);
fs.readFile('./filterergebnis.ejs', {encoding: 'utf-8'}, function(err, filestring){
if(err){
throw err;
}
else{
var options = {
host: 'localhost',
port: 3000,
path: '/search',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': test.length
}
}

var req = http.request(options, function(res) {
res.on('data', function (chunk) {
var userdata = JSON.parse(chunk);
console.log(userdata);
var html = ejs.render(filestring, userdata);

//here does the error appear...
res.setHeader('content-type', 'text/html');
res.writeHead(200);
res.write(html);
res.end();
});
});

req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});

req.write(test);
req.end();
}
});
});

错误如下所示: http://www.pic-upload.de/view-28225954/stack.png.html

index.ejs 默认运行

最佳答案

您使用了冲突的 res 变量名称。检查 app.post()http.request() 回调的变量名称。

如果您改为response,如果没有其他问题,它可能会起作用:

var req = http.request(options, function(response) {
response.on('data', function (chunk) {
...

关于javascript - 服务器和客户端之间的响应方法出现 Node js错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32418763/

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