node.js - 响应数据较大时的 AWS Lambda NodeJs 响应错误
问题描述
当我尝试从 nodejs lambda 函数返回响应时,我收到以下错误:
Can't set headers after they are sent Error: Can't set headers after they are sent at validateHeader
如果响应长度很小,那么我会在响应中得到它。
我尝试发送硬编码数据并观察到相同的结果 - 获取小数据的输出,而不是大数据的输出。
在这两种情况下都存在错误,但如果数据长度很小,我会得到响应。
我们该如何解决?
添加部分代码进行审查:
let videoInstance = await _searchVideo();
if (!videoInstance) {
const err = new APIError('Video not found!', HTTPStatus.NOT_FOUND, true);
return next(err);
}
let collections = await parseVideoList([videoInstance]);
if (req.accessToken && req.accessToken.obj) {
collections = _.filter(collections, collection => {
return collection.subscribed;
});
}
let respObj = {
_embedded: {
collections
}
}
res.json(respObj);
} catch (exec) {
return next(exec);
}
解决方案
我有一个解决这个问题的方法。我做了以下事情:
res.end(JSON.stringify(respObj));
我仍然可以在控制台中看到错误,但在这种情况下我得到了响应。
推荐阅读
- javascript - 将新的逗号分隔的数字字符串推送到现有数组
- java - 使用 Apache POI 从 Excel 电子表格获得的单元格值打印与 Java 字符串相同的值,但 IF 语句没有说它们相同?
- scala - 根据 Spark 中 DF2 的日期范围获取 DF1 中列的总和
- erlang - Elixir 使用列表从一个列表转换数据
- java - 带罐子目标的蚂蚁
- python - 根据数据和类间隔创建分组频率
- python - 如何将每个新输入放入python中的新列表中?
- sql - MSAccess 中的 SQL 查询根据其排序顺序用字母对值列进行排名
- angular - 未呈现 X 轴上时间和 Y 轴上类别的 Chart.js 条形图
- c# - 使用 Windows 身份验证的 IIS 匿名身份验证 - 未发出第二个请求