2016-09-01 3 views
4

문제가없는 것 같습니다. 누구든지 내가 뭘 잘못하고 있는지 알아? 이 프로젝트는 유성과 반응으로 만들어졌습니다. Marak/faker.js로 데이터를 가져올 때 오류가 발생했습니다.

내 가져 오기 파일 :

import _ from 'lodash'; 
 
import { lorem, faker } from 'faker'; 
 
import { Comments } from '../../api/comments/comments'; 
 
import { insertComment } from '../../api/comments/methods.js'; 
 
import { Bert } from 'meteor/themeteorchef:bert'; 
 

 

 
Meteor.startup(() => { 
 
\t // Great place to generate some data 
 

 
\t // Check to see if data excists in the collection 
 
\t // See if the collection has any records 
 
\t const numberRecords = Comments.find({}).count(); 
 
\t if (!numberRecords) { 
 
\t \t // Generate some data... 
 
\t \t _.times(100,() => { 
 
\t \t \t const title = faker.lorem.title(); 
 
\t \t \t const content = faker.lorem.title(); 
 

 
\t \t \t insertComment.call({ 
 
\t \t \t \t title, content, 
 
\t \t \t }, (error) => { 
 
\t \t \t \t if (error) { 
 
\t \t \t   Bert.alert(error.reason, 'danger'); 
 
\t \t \t  } else { 
 
\t \t \t   target.value = ''; 
 
\t \t \t   Bert.alert('Comment added!', 'success'); 
 
\t \t \t  } 
 
\t \t \t }); 
 
\t \t }); 
 
\t } 
 
});
그리고 이것은 내가 코멘트 작성하는 데 사용할 방법 파일입니다

import { Comments } from './comments'; 
 
import { SimpleSchema } from 'meteor/aldeed:simple-schema'; 
 
import { ValidatedMethod } from 'meteor/mdg:validated-method'; 
 
import { rateLimit } from '../../modules/rate-limit.js'; 
 

 
export const insertComment = new ValidatedMethod({ 
 
    name: 'comments.insert', 
 
    validate: new SimpleSchema({ 
 
    title: { type: String }, 
 
    content: { type: String }, 
 
    }).validator(), 
 
    run(comment) { 
 
    Comments.insert(comment); 
 
    }, 
 
}); 
 

 
rateLimit({ 
 
    methods: [ 
 
    insertComment, 
 

 
    ], 
 
    limit: 5, 
 
    timeRange: 1000, 
 
});

이것은이다 내 터미널에 도착하는 오류 코드 : TypeError : undefined의 'lorem'속성을 읽을 수 없습니다.

도움이 매우 감사합니다.

편집 :

으로 내가에서 가져 오기에 대한 변경을 제안 " '사기꾼'에서 가져 오기 {가 lorem, 사기꾼};" "faker에서 faker를 가져 오기"; "

이 변경된 "faker.lorem.title();" ~ "faker.hacker.noun();"

고마워!

답변

2

It looks like Faker는 기본값으로 faker을 내보내고 상수가 아닙니다. 그래서 당신은

import faker from 'faker'; 
// then use `faker.lorem` as you are currently doing 

또는

import { lorem } from 'faker'; 
// then use `lorem` instead of `faker.lorem` 

는 현재 당신이 faker.lorem를 사용하여 다음

import { lorem, faker } from 'faker'; 

및을하고해야하기 때문에 lorem 가져 오는이 사용되지 않습니다. 가져 오려는 faker은 정의되어 있지 않으므로 faker.lorem(...을 호출하면 TypeError: Cannot read property 'lorem' of undefined.이 예외로 throw됩니다.

+0

뚜렷한 설명과 답을 쓸 시간을내어 주셔서 감사합니다. 그것을 시도해보십시오. – Deelux

+0

좋아, 나 한 걸음 가까이 다가왔다. 당신이 말한 내용을 변경했습니다. 따라서 사용하는 것은 : -> faker에서 가져 오기 faker; 그리고 "faker.lorem.title"을 "faker.hacker.noun();"로 변경했습니다. 이것은 효과가있는 것 같습니다. 하지만 이제는 insert 메소드와 관련하여 새로운 오류가 발생합니다 : 'comments.insert'호출 결과 전달시 예외 : ReferenceError : target이 정의되지 않았습니다. – Deelux

+0

여전히 오류가 발생하지만 작동하고 가져 오기 사기꾼의 데이터! 다시 한 번 감사드립니다! – Deelux