我正在尝试创建REST服务,它通过hapi.js从数据库返回数据作为响应。
我使用乏味的方法执行SQL查询,我希望将结果格式化为JSON或XML,并将其作为hapi请求的响应返回。请注意,这并不是单调乏味的,我可以在任何数据库中遇到同样的问题。乏味的有一个回调,每次从结果集中接收一个新行时都会调用该回调:
sqlRequest.on('row', function (columns) {
fnOutput(columns[0].value);
});这是一个列输出的最简单的例子。fnOutput是一个自定义函数,它接受应该返回的文本。它可以连接结果并将其格式化为将返回给客户端的JSON。
我将逐行获取值,并希望将值连接在行中,并通过hapi将它们返回给客户端。如何连续地将部分结果发送到响应?
每当我在回调函数中获得新行时,是否有什么方法可以持续地将此回调结果追加到hapi.js输出流中?
发布于 2016-01-24 19:52:44
您可以使用request.raw.res.write()将数据写入原始响应。
request.raw.res是原始的ServerResponse对象,您可以在这里找到write方法的文档:callback
一旦您完成了数据的编写,您就需要告诉hapi,您已经完成了通过调用reply.close()手动处理请求
类似的东西(未经测试):
sqlRequest.on('row', function (columns) {
request.raw.res.write(columns[0].value);
});
sqlRequest.on('done', function () {
reply.continue();
});https://stackoverflow.com/questions/34816295
复制相似问题