Collection.insert不是函数-Meteor
开发者们好!我正在与Meteor.js合作这是我的第一次过期 我在文件中创建了集合Collection.insert不是函数-Meteor,meteor,collections,mongoose,Meteor,Collections,Mongoose,开发者们好!我正在与Meteor.js合作这是我的第一次过期 我在文件中创建了集合 // ./dbs/messages.js import { Mongo } from 'meteor/mongo'; import { Meteor } from 'meteor/meteor'; import { check } from 'meteor/check'; export const Messages = new Mongo.Collection('messages'); 并在api点调用
// ./dbs/messages.js
import { Mongo } from 'meteor/mongo';
import { Meteor } from 'meteor/meteor';
import { check } from 'meteor/check';
export const Messages = new Mongo.Collection('messages');
并在api点调用消息时使用它。像这样插入
// server/mail.js
import Messages from './dbs/messages.js';
Meteor.methods({
'message.post'(messageText, location){
Messages.insert({
messageText: messageText,
location: location
});
}
})
但是当我调用'message.post'
时,我得到一个错误
Exception while invoking method 'message.post' TypeError
Messages.insert is not a function
但是,当我在server/main.js
中导入并声明它时
// import Messages from './dbs/messages.js';
const Messages = new Mongo.Collection('messages');
Meteor.methods({
'message.post'(messageText, location){
Messages.insert({
messageText: messageText,
location: location
});
}
});
在这种情况下,我的消息.insert
工作正常
谁对流星有经验-你能解释一下原因吗?
谢谢
另外,我已经删除了autopublish
和unsecure
包,因为@MasterAM和@Ankur Soni说您需要使用括号从“/dbs/Messages.js”导入消息代码>
导入无括号的唯一方法是定义消息,然后像导出默认消息那样导出它
正如@MasterAM和@Ankur-Soni所说,您需要使用括号从“/dbs/Messages.js”导入{Messages}消息代码>
导入无括号的唯一方法是定义消息,然后像导出默认消息那样导出它代码>我在一个“公共”空间开始收集。我觉得你做的其实是对的。您可以两次声明集合,一次在客户端,一次在服务器端,或者在公用文件夹中只声明一次。我在许多文档中看到,保存这些声明的流行位置是/imports/api。。。这对于服务器和客户端都是通用的
Rgs,
保罗我在一个“公共”空间开始收藏。我觉得你做的其实是对的。您可以两次声明集合,一次在客户端,一次在服务器端,或者在公用文件夹中只声明一次。我在许多文档中看到,保存这些声明的流行位置是/imports/api。。。这对于服务器和客户端都是通用的
Rgs,
保罗很可能是进口问题。您应该将其作为命名导入(import{Messages}from…
)导入,或者将其作为默认值导出代码>很可能是导入问题。您应该将其作为命名导入(import{Messages}from…
)导入,或者将其作为默认值导出代码>