더북(TheBook)

fixtures 배열의 객체 하나하나를 몽고DB에 입력하려면 fixture.js에서 AddressBook(미티어 컬렉션 오브젝트)의 insert 메서드를 사용해야 한다.

Projects/addressBook/server/fixture.js

생략
Meteor.startup(() => {

<span class="k">if</span><span class="p">(</span><span class="nx">AddressBook</span><span class="p">.</span><span class="nx">find</span><span class="p">().</span><span class="nx">count</span><span class="p">()</span> <span class="o">===</span> <span class="mi">0</span><span class="p">){</span>
    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="s2">"데이터가 존재하지 않습니다. fixture 데이터를 입력합니다."</span><span class="p">);</span>
    <span class="cm">/* 10건만 등록해보자 */</span>
    <span class="k">for</span><span class="p">(</span><span class="kd">var</span> <span class="nx">i</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span><span class="nx">len</span><span class="o">=</span><span class="mi">10</span><span class="p">;</span> <span class="nx">i</span><span class="o">&lt;</span><span class="nx">len</span><span class="p">;</span><span class="nx">i</span><span class="o">++</span><span class="p">){</span>
        <span class="nx">AddressBook</span><span class="p">.</span><span class="nx">insert</span><span class="p">(</span><span class="nx">fixtures</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span>    
    <span class="p">}</span> 
<span class="p">}</span>

});

Meteor.startup 메서드는 실행될 구문을 함수 형태(콜백 함수)로 전달받아 미티어를 처음 실행할 때 1번만 실행된다. 따라서 데이터가 없으면(AddressBook.find().count()의 반환값이 0이면) AddressBook.insert 메서드를 사용해 fixtures 배열의 오브젝트를 하나씩 생성했다.

정상적으로 실행되면 다음처럼 console.log에서 작성한 메시지를 확인할 수 있다.

~/Projects/addressBook$ meteor run

[[[[[ ~/Projects/addressBook ]]]]]

 

=> Started proxy.

=> Started MongoDB.

I20170617-15:06:26.226(9)? 데이터가 존재하지 않습니다. fixture 데이터를 입력합니다.

=> Started your app.

 

=> App running at: http://localhost:3000/


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.