我在使用 Node.js 将结果集返回给客户端时遇到问题。我是新手并将其用于项目,但我被卡住了,不知道为什么。情况如下:我有一个网页、一个服务器、一个请求处理程序和一个数据库接口。我能够毫无问题地在客户端和服务器之间来回发送数据。唯一不起作用的是当我尝试将查询的结果发送回客户端时。
function doSomething(response)
{
var data = {
'name': 'doSomething'
};
response.writeHead(200, {'Content-Type': 'text/html', 'Access-Control-Allow-Origin': '*'});
response.end(JSON.stringify(data));
}
这很好用,因为我可以从客户端的对象中读取名称,但是
function fetchAllIDs(response)
{
dbInterface.fetchAllIDs(function(data) {
// console.log(data) prints the correct information here
response.writeHead(200, {'Content-Type': 'text/html', 'Access-Control-Allow-Origin': '*'});
response.end(data);
// console.log(data) from the client side is just blank
});
}
我相信问题在于我处理回调和响应的方式,因为在不尝试使用 mysql 的情况下,我的其余代码工作正常。谢谢!
编辑:我删除了一个似乎让人们感到困惑的代码。这只是为了表明,如果我在回调之外有响应代码,那么我可以将任何数据返回到服务器。在我的实际代码中,我没有将两个响应语句放在一起。我只是无法将 fetchAllIDs 函数中的行返回给客户端。