Collection.insert不是一个函数 - 流星

Nik*_*nyy 0 collections mongoose meteor

好日子开发者!我正在使用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');
Run Code Online (Sandbox Code Playgroud)

并在Messages.insert这样的呼叫中使用它

// server/mail.js

import Messages from './dbs/messages.js';

Meteor.methods({
 'message.post'(messageText, location){
    Messages.insert({
      messageText: messageText,
      location: location
    });
  }
})
Run Code Online (Sandbox Code Playgroud)

但是当我打电话时,'message.post'我得到一个错误

Exception while invoking method 'message.post' TypeError
Messages.insert is not a function
Run Code Online (Sandbox Code Playgroud)

但是,当我评论集合导入并将其声明为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
    });
  }
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的Messages.insert工作正常.

谁有Meteor的经验 - 你能解释一下我的原因是什么吗? 谢谢!此外,我已删除autopublishinsecure

小智 5

正如@MasterAM和@Ankur Soni所说,你需要使用括号导入消息import { Messages } from './dbs/messages.js'; 没有括号导入的唯一方法是定义消息然后像这样导出它export default Messages;