我在Firebase上编写了一些GCF。项目结构:我得到了index.js,它声明了所有的功能。每个函数都在单独的.js文件中。我有一些实用功能,例如sendSuccess或sendFailure在我编码的地方
function _respondSuccess(res, status, data, httpCode) {
var response = {
'status': status,
'successFlag' : true,
'data' : data
};
res.status(httpCode).send(response);
}
function _respondFailure(res, status, data, httpCode) {
var response = {
'status': status,
'successFlag' : false,
'data' : data
};
res.status(httpCode).send(response);
}
我在个人GCF功能成功或失败时调用此功能。但是如果发生故障,例如条件-if-其中一个参数为null,我调用_respondFailure内部函数,GCF中的代码仍然继续下一个代码语句。我在控制台日志中出现GCF错误 - 未处理的拒绝 - 错误:发送后无法设置标头。 在ServerResponse.OutgoingMessage.setHeader(_http_outgoing.js:357:11) 在ServerResponse.header(/var/tmp/worker/node_modules/express/lib/response.js:700:10) at _respondFailure(/user_code/banks/getBanks.js:77:10) 失败了(/user_code/banks/getBanks.js:103:2) 在/user_code/banks/getBanks.js:228:18 at process._tickDomainCallback(internal / process / next_tick.js:135:7)
有任何帮助来纠正它吗?或者我必须回到Firebase团队寻求支持?
由于
9:29:57.712 AM
警告
getBanksFunction
错误:发送后无法设置标头。 at ServerResponse.OutgoingMessage.setHeader(_http_outgoing.js:357:11)at ServerResponse.header(/var/tmp/worker/node_modules/express/lib/response.js:700:10)at_respondFailure(/ user_code / banks / getBanks) .js:77:10)失败(/user_code/banks/getBanks.js:103:2)atuser_code/banks/getBanks.js:228:18 at process._tickDomainCallback(internal / process / next_tick.js:135 :7)
9:29:57.711 AM
警告
getBanksFunction
未处理的拒绝
9:29:55.110 AM
信息
getBanksFunction
响应值 - 未定义
9:29:55.110 AM
信息
getBanksFunction
错误值-true
9:29:46.014 AM
信息
getBanksFunction
检查索引是否存在(banks_index_v1)
9:29:45.923 AM
outlined_flag
getBanksFunction
函数执行花了14毫秒,完成状态代码:401
9:29:45.923 AM
信息
getBanksFunction
sizeVal = 10,page = undefined,fromVal = 0
9:29:45.921 AM
信息
getBanksFunction
错误:401错误:在ES中创建索引所需的req.query.routingUid - > undefined
9:29:45.921 AM
信息
getBanksFunction
req.query.size = undefined
9:29:45.921 AM
信息
getBanksFunction
req.query.page = undefined
9:29:45.921 AM
信息
getBanksFunction
req.query.uid = undefined
在index.js中调用的函数
exports.getBanksFunction = functions.https.onRequest((req, res) => {
cors(req, res, () => {
getBanksFunction.handler(req, res, database, esClient);
});
});
从GCF功能逻辑调用
console.log('Inside serer.post(getbanks)');
console.log('req.query.uid = ' + req.query.uid);
console.log('req.query.page = ' + req.query.page);
console.log('req.query.size = ' + req.query.size);
var routingUid = req.query.uid;
var page = req.query.page;
var sizeVal = req.query.size;
var fromVal = 0;
if(routingUid === null || routingUid === undefined) {
resMsg = "Error: req.query.routingUid required to create Index in ES ->" + routingUid;
helper.failure(res,resMsg,401);
}
if(sizeVal == null || sizeVal === undefined)
sizeVal = 10;
if(page === null || page === undefined)
fromVal = 0;
else
fromVal = page * Number(sizeVal);
console.log('sizeVal = '+sizeVal+' , page ='+page+" , fromVal = "+fromVal);