【发布时间】:2021-07-19 03:57:20
【问题描述】:
我正在转换为客户端/服务器应用程序的 cli 应用程序有问题。
我编写的课程中有一个函数可以管理一些问题的随机抽取。有时我注意到该函数无法提取问题并出现此错误
/Users/dev/Desktop/demo/demo-gui.js:77
question: this.questions[n].question,
^
TypeError: Cannot read property 'question' of undefined
at DemoGUI.extractQuestions (/Users/dev/Desktop/demo/demo-gui.js:77:45)
at /Users/dev/Desktop/demo/demo-gui.js:51:18
at Layer.handle [as handle_request] (/Users/dev/Desktop/demo/node_modules/express/lib/router/layer.js:95:5)
at next (/Users/dev/Desktop/demo/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Users/dev/Desktop/demo/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Users/dev/Desktop/demo/node_modules/express/lib/router/layer.js:95:5)
at /Users/dev/Desktop/demo/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Users/dev/Desktop/demo/node_modules/express/lib/router/index.js:335:12)
at next (/Users/dev/Desktop/demo/node_modules/express/lib/router/index.js:275:10)
at urlencodedParser (/Users/dev/Desktop/demo/node_modules/body-parser/lib/types/urlencoded.js:91:7)
这是导致问题的类的方法
async extractQuestions(){
this.askQuestions = [];
this.questionsAnswers = [];
for(let i = 0; i < 10; i++){
let n = chance.integer({min: 0, max: this.questions.length});
this.askQuestions.push({
questionIndex: n,
question: this.questions[n].question,
choices: this.questions[n].possibleAnswers
});
this.questionsAnswers.push({
index: n,
correctAnswer: this.questions[n].correctAnswer
});
}
//this.maxScore = Math.floor( 5 * 10 );
}
问题是从在类的构造函数中加载的json 文件中加载的
constructor(questionsFile, uiResources){
this.questionsData = fs.readFileSync(questionsFile, {encoding: 'utf-8'});
this.questions = JSON.parse(this.questionsData);
this.uiResources = uiResources;
this.app = express();
}
有没有办法解决这个问题?
【问题讨论】:
标签: javascript node.js arrays express random