javascript - 无法读取未定义的属性“totalCalls”
问题描述
我正在研究 AWS Lambda 并在 Node.js 中编写一个方法,当我运行该方法时它给出了一个错误
**Cannot read property 'totalCalls' of undefined**
这是我的代码
const mysql = require('mysql');
const moment = require("moment");
var pool = mysql.createPool({
host: process.env.RDS_HOSTNAME,
user: process.env.RDS_USERNAME,
password: process.env.RDS_PASSWORD,
port: process.env.RDS_PORT,
database: process.env.RDS_DATABASE
});
exports.handler = (event, context, callback) => {
console.log('Events:',event);
//let QueueID = event['queueId'];
// allows for using callbacks as finish/error-handlers
context.callbackWaitsForEmptyEventLoop = false;
pool.getConnection(function(err, connection) {
if (err) throw err;
var d = new Date();
let currentDay = moment(d).format('MM-DD-YYYY');
console.log('CurrentDay:',currentDay);
let sub = 6;
d.setDate(d.getDate() - sub);
d.setHours(00);
d.setMinutes(00);
let sql = `select * from ctrData2.CallDetail WHERE InitiationTimestamp > ? ORDER BY InitiationTimestamp ASC`;
//let field = [QueueID];
connection.query(sql,[d], function (err, result, ) {
if (err) throw err;
// connection.release();
var CallaboveSla =0;
var weeklySLAObject={};
result.forEach(d => {
if(weeklySLAObject[d.RoutingProfileName] !== undefined){
console.log('Do i comere here',weeklySLAObject)
weeklySLAObject.RoutingProfileName.totalCalls++;
if(d.AgentInteractionDuration > 180){
if(weeklySLAObject.RoutingProfileName.callsaboveSla){
weeklySLAObject.RoutingProfileName.callsaboveSla++;
}else{
weeklySLAObject.RoutingProfileName.callsaboveSla=0
}
}
}else{
weeklySLAObject[d.RoutingProfileName] = {totalCalls: 0,callsaboveSla:0};
}
// let date = new Date(d.ConnectedToAgentTimestamp);
// let DateNow = moment(date).format('MM-DD-YYYY');
// let datetoday = new Date();
// datetoday.setDate(datetoday.getDate() - 7); //set it to 6 days back
// weeklySLAObject.push(d);
});
let sla = (CallaboveSla/result.length)*100;
callback(null,weeklySLAObject);
});
});
};
我不知道这个错误是什么
打印在控制台上并能够检索总数。
值显示在控制台中,但作为响应,它给了我一个错误。
解决方案
您正在检查未定义:
if(weeklySLAObject[d.RoutingProfileName] !== undefined){
但是你正在访问另一个属性
weeklySLAObject.RoutingProfileName
可能应该更改为
weeklySLAObject[d.RoutingProfileName].totalCalls++
推荐阅读
- excel - 如何从给定数字中选择几个数字
- amazon-web-services - 基于 Serverless 框架的可独立部署微服务的样板
- npm - 带有标头 X-Content-Type-Options 的 npm http-server
- python - 在 Django 模板中使用 Vue.js
- amazon-web-services - AWS X-RAY [错误] 发送分段批处理失败,原因是:NoCredentialProviders:链中没有有效的提供程序。已弃用
- python - 如何使用 has_object_permission 检查用户是否可以在基于函数的视图中访问对象
- python - 如何让我的播放器与我的平台底部发生碰撞
- python-3.x - 正分数的平方根在 Python 中给出复数
- amazon-web-services - 注册的容器实例少于运行服务计数?
- regex - 如何在sed中表达变量?