【发布时间】:2017-06-30 19:35:14
【问题描述】:
我想在meteor.js 上写一个简单的聊天,因此我不想将数据存储在database 中。
但是我从来没有发现如何在没有database 的情况下制作应用程序。
这是我可以想象的代码示例。 服务器代码:
export let ws = [{_id:'1', text:'test1'}, {_id:'2', text:'test2'}];
Meteor.publish('ws', function wsPub() { return ws; });
let ctr = 3;
Meteor.methods({
'addMsg'(text) { ws.push({_id:ctr+1, text:text}); }
});
和客户端代码:
import {ws} from '../api/model.js';
class Rtc extends Component {
constructor(props) {
super(props);
}
addMsg(e){
e.preventDefault();
Meteor.call('addMsg', this.refs.input.value);
}
render() {
return (
<div>
{this.props.ws.map((item, i)=>{
return(<span key={i._id}>{item.text}</span>);
})}
<input type="text" ref="input" />
<input type="submit" value="submit" onClick={this.addMsg.bind(this)}/>
</div>
);
}
}
export default createContainer( () => {
Meteor.subscribe('ws');
return { ws: ws };
}, Rtc);
但我不明白我写的不是createContainer中的吗?
UPD:我更新了服务器代码,但 websockets 仍然无法正常工作:
Meteor.publish('ws', function wsPub() {
let self = this;
ws.forEach( (msg)=> {
self.added( "msg", msg._id, msg.text );
});
self.ready();
// return ws;
});
【问题讨论】:
-
只是想知道,如果您不想要 Meteor 的 pub/sub 系统的优势,为什么要使用 Meteor?
-
@MasterAM 我喜欢 pub/sub 系统,但它存储在数据库中并不总是乏味,而且并不总是在 mongodb 中。有非常不同的案例和任务。在这里,我们假设现在不需要制作基础 vebrts,我正在尝试了解如何做到这一点。
标签: javascript arrays reactjs meteor websocket