2017-08-18 1 views
0

私はしばらく前に作成して壊したテクスチャアプリを持っています。コードをすべて別のプロジェクトにコピーし、同じパッケージをインストールすることで修正しました。私がこれをしたとき、それは働きませんでしたし、私は理由も分かりません。データが公開されていないので、空の配列を返してtextsに絞り込んだ。しかし、ちょうど作成された新しいアプリでは、私はまったく同じコードを持っていますが、これは動作していません...私はコピーした私の他のアプリで私に起こりました(それはうまくいきませんでしたそれはそれに触れない日の後に働いた。そして、はい、自動公開はバージョン1.0.7にインストールされています。これが再発生する問題を助けてください、本当に答えが必要です!server.jsファイルに何かがないかぎり、アプリが動作しない

クライアント - main.js

import React from "react"; 
import ReactDOM from "react-dom"; 
import {Meteor} from "meteor/meteor"; 
import {Tracker} from "meteor/tracker"; 
import { BrowserRouter, Route, Switch, Redirect, withRouter} from 'react-router-dom' 

import {Texts} from "./../imports/api/Text"; 
import App from "./../imports/ui/App"; 
import NotFound from "./../imports/ui/NotFound"; 
import Signup from "./../imports/ui/Signup"; 
import Login from "./../imports/ui/Login"; 

Meteor.startup(() => { 
    Tracker.autorun(() => { 
     let texts = Texts.find().fetch(); 
     let signedIn = !!Meteor.userId(); 
     if(signedIn){ 
      console.log("signed in"); 
     }else{ 
      console.log("signed out") 
     } 
     console.log(texts) 
     const routes = (
      <BrowserRouter> 
       <Switch> 
        <App path="/chat" texts={texts}/> 
        <Signup path="/signup" /> 
        <Login path="/login" /> 
        <Route component={NotFound}/> 
       </Switch> 
      </BrowserRouter> 
     ); 
     ReactDOM.render(routes, document.getElementById("app")); 
    }); 
    console.log("HI") 
}); 

サーバ - main.js

import { Meteor } from 'meteor/meteor'; 

Meteor.startup(() => { 
    const Texts = new Mongo.Collection("texts") //<--app only works when I put this line of code in the server file 
}); 

Text.js

import {Mongo} from "meteor/mongo"; 

export const Texts = new Mongo.Collection("texts"); 

答えて

0

あなたが必要コレクションをクライアントとサーバーの両方で初期化するあなたのコードからは、クライアントコードからのみText.jsをインポートしているようです。そのため、サーバー上でコレクションを作成しているときにのみ動作します。同じText.jsserver/main.jsにインポートできます。

+0

あなたはそれをインポートして何らかの方法で呼び出さないのはなぜですか? –

+0

このインポートには 'new Mongo.Collection ...'命令が含まれているためです。基本的には 'startup 'の' server/main.js'と同じコードです。 – Styx

関連する問題