我有一个短信应用程序,我创建了一段时间后,并打破了。我通过将所有代码复制到另一个项目并安装相同的包来修复它。当我这样做时,它停止工作,我不知道为什么。我将其缩小到texts
,因为没有数据被发布,所以返回一个空数组。但是在刚刚创建的新应用程序中,我有完全相同的代码,但是这个代码不起作用...我发现我的其他应用程序是我复制的(它没有工作,然后随机它再次开始工作)和经过一天不接触它后,它工作了。是的,autopublish安装在版本1.0.7。请帮助这是一个重新解决的问题,我真的需要一个答案!
客户 - 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 :(得分:0)
您需要在客户端和服务器上初始化集合。从您的代码看,您似乎只是从客户端代码导入Text.js
,这就是为什么它只在您在服务器上创建集合时才有效。您可以在Text.js
中导入相同的server/main.js
,它应该有效。