2017-04-12 26 views
0

我很努力讓我的項目與路由一起工作,我想象一些事情是錯誤的。流星項目結構與路由 - 錯誤已經有一個名爲人的集合

當前正在記錄異常

Error: There is already a collection named "person" 
    at new Mongo.Collection (packages/mongo/collection.js:240:15) 
    at meteorInstall.collections.persons.js (collections/persons.js:2:23) 
    at fileEvaluate (packages/modules-runtime.js:197:9) 
    at require (packages/modules-runtime.js:120:16) 
    at /home/usr/Dev/simple-todos/.meteor/local/build/programs/server/app/app.js:198:1 
    at /home/usr/Dev/simple-todos/.meteor/local/build/programs/server/boot.js:303:34 
    at Array.forEach (native) 
    at Function._.each._.forEach (/home/usr/.meteor/packages/meteor-tool/.1.4.3_2.7s3fq6++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11) 
    at /home/usr/Dev/simple-todos/.meteor/local/build/programs/server/boot.js:128:5 
    at /home/usr/Dev/simple-todos/.meteor/local/build/programs/server/boot.js:352:5 
Exited with code: 1 
Your application is crashing. Waiting for file change. 

以下是我的代碼:

routes.js(lib文件夾中加載,以便它加載第一)

Router.configure({ 
    layoutTemplate: 'layout' 
}); 

Router.route('/', function() { 
    this.render('personTemplate'); 
}); 

主版面模板(作爲整個應用程序的容器)+一個收益容器ct主模板上的路線。

<template name="layout"> 
    <nav class="deep-orange lighen-4" role="navigation"> 
     <div class="nav-wrapper container left"> 
      <ul class="right"> 
       <li><a href="test.html">test</a></li> 
       <li><a href="/about">about</a></li> 
       {{> loginButtons}} 
       <!-- <i class="material-icons" style="font-size:30px;color:grey">person</i> --> 
      </ul> 
      <a href="#" class="brand-logo left ">SiteName</a> 
     </div> 
    </nav> 
    {{> yield}} 
</template> 

person.js(收集定義文件 - 也位於lib文件夾中加載第一)

import {mongo} from 'meteor/mongo'; 
export const Person = new Mongo.Collection('person'); 

personTemplate定義

<template name="personTemplate"> 
    {{#each person}} 
    {{> todosTest}} 
    {{/each}} 
</template> 

<template name="todosTest"> 
    <ul>{{name}}</ul> 
</template> 

人幫手 - 將執行查找人員收集

import { Template } from 'meteor/templating'; 
import { Person } from '../../lib/collections/persons.js'; 
import { ReactiveVar } from 'meteor/reactive-var'; 
import '../templates/personTemplate.html'; 

Template.personTemplate.helpers({ 
    person(){ 
    var aPerson = Person.find({}); 
    // check for existence before returning 
    return aPerson && aPerson.name 
    } 
}); 

最後我main.js文件來加載集合在服務器上:

import { Meteor } from 'meteor/meteor'; 
import '../lib/collections/persons.js'; 

圖形下方顯示的文件夾佈局:

enter image description here

+0

修復了問題 - 但是有一個加載順序錯誤,看起來好像! - – Hightower

回答

1

您正在定義通過在兩個不同的文件夾中存儲相同的文件兩次收集「人物」。

+0

aargh! ..我怎麼沒注意到? ---仍然崩潰 - 模板助手中的異常:require <.client.helpers [「personH​​elpers.js」] Hightower