나는 투표 한 시간과 함께 사용자 ip와 투표 한 항목을 기록해야하는 폴링 응용 프로그램을 만듭니다.array.push를 사용하면 정의되지 않음이 발생합니다.
이 작업을 수행하려면 각 속성에 포함 된 각각의 '투표'에 대한 개체를 만든 다음 해당 개체를 배열로 밀어 내 요구 사항에 잘 맞을 것이라고 생각했습니다.
내 배열에 개체를 넣으려고 할 때까지 모든 것이 잘 돌아가고있었습니다. 현재 내 배열은 정의되지 않았다고합니다.
정확히 어떤 현상이 발생합니까? 나는 인덱스를 사용하고 객체에 votingArray [i]를 설정하려고 시도했지만 정의되지 않은 오류도 발생했습니다. ('votingArray.push (voteObject)'라인 69 인)
Express started on http://localhost:8080; press Ctrl-C to terminate.
{ time: 1474584882143, pet: 'scout', ip: '::ffff:10.240.1.15' }
TypeError: Cannot read property 'push' of undefined
at trackVote (/home/ubuntu/workspace/Projects/projectTwo/app.js:69:14)
at vote (/home/ubuntu/workspace/Projects/projectTwo/app.js:51:6)
at /home/ubuntu/workspace/Projects/projectTwo/app.js:43:6
at Layer.handle [as handle_request] (/home/ubuntu/workspace/Projects/projectTwo/node_modules/express/lib/router/layer.js:95:5)
at next (/home/ubuntu/workspace/Projects/projectTwo/node_modules/express/lib/router/route.js:131:13)
at Route.dispatch (/home/ubuntu/workspace/Projects/projectTwo/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/ubuntu/workspace/Projects/projectTwo/node_modules/express/lib/router/layer.js:95:5)
at /home/ubuntu/workspace/Projects/projectTwo/node_modules/express/lib/router/index.js:277:22
at param (/home/ubuntu/workspace/Projects/projectTwo/node_modules/express/lib/router/index.js:349:14)
at param (/home/ubuntu/workspace/Projects/projectTwo/node_modules/express/lib/router/index.js:365:14)
: 여기 내 코드입니다 :
//Vote for the pet passed into by user
function vote(pet, time){
linkService.incrementCount(pet);
trackVote(pet, time);
res.render('vote', {
pet: pet
});
}
var votingArray = [];
function trackVote(pet, time) {
var voteObject = {
time: time,
pet: pet,
ip: req.ip
};
console.log(voteObject);
votingArray.push(voteObject);
console.log(votingArray);
}
function showResults(){
res.render('results', {
votingArray: votingArray
});
}
그리고 여기 내 콘솔에서 오류가 편집 :
많은 사람들이 내가 선언했지만 varriable 'votingArray'를 인스턴스화하지 않았기 때문에 배열로, 그리고 내 발췌 문장은 내가 그 주석과 답변을 충족해야만하는 것을 다시 작성한 모든 것을 포함하지 않았다.
여전히 votingArray.push에 대해 동일한 오류가 발생합니다. 귀하의 변수 votingArray
가
var votingArray = [];
//Vote for the pet passed into by user
function vote(pet, time){
linkService.incrementCount(pet);
var votingObject =
{
ip: req.ip,
pet: pet,
timecode: time
};
votingArray.push(votingObject);
res.render('vote', {
pet: pet
});
}
function showResults(){
res.render('results', {
votingArray: votingArray
});
}
에'votingArray'는 undefined''이다. 오류가 정확히 무엇을 말합니다. – vlaz
예,하지만 정의되지 않은 이유는 무엇입니까? 나는 그것을 선언하고, 내가 배열과 콘솔에 집어 넣지 않으면 정의한다. 로그하라, 나는 똑같은 오류를 받는다. –
'votingArray = [];'처럼'votingArray'를 초기 값으로 초기화하려고합니다. –