Collection.insert不是函数-Meteor

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点调用

开发者们好!我正在与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点调用
消息时使用它。像这样插入

// 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…
)导入,或者将其作为默认值导出