Meteor项目中数据库的使用
Meteor项目启动后,会在http://localhost:3000运行,
数据库会在127.0.0.1:3001运行;
1、数据库js文件
为方便管理数据库文件,一个数据库就为它准备一个单独的js文件,保存同一种结构的数据。
为了方便管理这些文件,我们将它们都存放到一个单独的collections文件夹中,并把这个文件夹放在前后端都能访问的公共区域。
一个数据库js文件举例:
//前后端通信的其它数据
PubDB = new Mongo.Collection("pubDb");
if (Meteor.isServer) {
PubDB.remove({});
Meteor.publish('pubDb', function () {
return PubDB.find({});
});
} else {
Meteor.subscribe('pubDb');
}
- 首先new一个新的数据库出来,传入数据库的名字‘pubDb’,用一个变量PubDB 接收。注意这个变量前面不要加var,这样它就是一个全局的变量,只要引入,在所有文件中都能使用。
- 在服务端,根据需要选择是否调用PubDB.remove({})清空数据库,像保存用户信息的数据库,每次启动时就不能清空数据库。而有的项目在启动时需要一个干净的数据库,就需要清空数据库,否则数据库会越来越大。
- 在服务端将数据库发布出去
- 在前端订阅数据库,这样数据库在有添加、更新、移除操作时,前端能触发相应的事件得到通知。
我们可以Meteor.isServer中,定义Meteor.methods,将操作此数据库的methods写到这里,便于管理。
我们还可以将数据库的数据格式写到注释中
怎么用schema约束数据格式还不知道。
2、前端观察数据库
在created钩子中
var self = this;
LoginInfo.find().observe({
added(val){},
changed(newVal,oldVal){},
remove(val){},
})
- added有数据添加时触发
- changed有数据更新时触发
- remove有数据移除时触发