-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"})] 
}); 
相關問題