>

다음 코드에 대해 typeError가 발생합니다. 이 함수 seedDB 전에 데이터 배열이 생성됩니다.

TypeError: Cannot read property 'push' of undefined

코드는 다음과 같습니다.

function seedDB() {
   Campground.deleteMany({}, function(err, res){
    if(err) {
        console.log(err);
    } else {
        console.log("removed campgrounds");
        }
        data.forEach(function(seed) {
        Campground.create(seed, function(err, campground) {
            if(err) {
                console.log(err);
            } else {
                console.log("added a new campground");
                Comment.create(
                    {
                        text: "this place is great",
                        author: "Homer"
                    }, function(err, comment) {
                        if(err) {
                            console.log(err);
                        } else {
 //it is this line here....=>
                            campground.comments.push(comment);
                            campground.save();
                            console.log("created new comment");
                        }
                    });
                }
            });
        });
    });
}


  • 답변 # 1

    캠프장에 comments 키가 없기 때문에 오류가 발생합니다.  또는 comments 의 가치  배열이 아닙니다. campground.comments.push(comment) 전에 로그 캠프장  캠프장의 '댓글'이 정의되어 있는지 확인합니다.

  • 이전 팬더의 loc은 벡터화 논리 또는 for 루프를 사용합니까?
  • 다음 dplyr - R (DBI 패키지)을 사용하여 SQL Server 테이블에서 행 삭제