-1

我的应用程序运行良好,直到我将client/main.js文件的集合定义外化为../imports/api/tasks.js文件。无法读取未定义的属性“插入”。我没有正确发布吗?

完成此移动后,我在浏览器中收到此错误消息:Uncaught TypeError: Cannot read property 'insert' of undefined在我的浏览器控制台中。此错误信息点到线main.js:1206它是:

/对myApp
../client/main.js

import { Images } from '../imports/api/tasks.js'; 
Meteor.subscribe('Images'); 

FS.Utility.eachFile(event, function(file) { 
var teste = Images.insert(file, function (err, fileObj) { 

var insertedIdSession = teste._id; 
session.set("insertedBuyId", insertedIdSession); 
Images.find().count()); 

    }); 

/对myApp
../imports/api/tasks.js

import { Mongo } from "meteor/mongo"; 
Images = new FS.Collection("images", { 
stores: [new FS.Store.FileSystem("images", {path: "~/uploads"})] }); 

/对myApp
../server/main.js

import { Images } from '../imports/api/tasks.js'; 

Meteor.publish('Images', function(){ 
return Images.find(); 
}); 

我已经研究过但未能找到解决方案。亲切指出我出错的地方。

回答

2

它告诉你“图像”没有被定义。

从我能看到你的代码,../imports/api/tasks.js没有出口任何东西,这意味着

import { Images } from '../imports/api/tasks.js'; 

不会给你任何东西,其实它将会取代具有null的全局变量Images。所以我认为解决的办法是用它来取代进口:

import '../imports/api/tasks.js'; 

或者你可以把tasks.js在/普遍,会做同样的工作

+0

谢谢,我用你的后一个解决方案'import'../ imports/api/tasks.js';'并且它工作正常。 – SirBT

1

您需要导出您的收藏Images为了将其导入到其他文件,如下所示:

import { Mongo } from "meteor/mongo"; 

export const Images = new FS.Collection("images", { 
    stores: [new FS.Store.FileSystem("images", {path: "~/uploads"})] 
}); 
相关问题