繁体   English   中英

无法读取未定义的属性“插入”。 我发布不正确吗?

[英]Cannot read property 'insert' of undefined. Am I not publishing correctly?

在将集合定义从client/main.js文件外部client/main.js文件之前,我的应用程序运行../imports/api/tasks.js

进行此操作后,我在浏览器中Uncaught TypeError: Cannot read property 'insert' of undefined收到此错误消息: Uncaught TypeError: Cannot read property 'insert' of undefined浏览器控制台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();
});

我进行了研究,但未能找到解决方案。 请指出我要去哪里了。

它告诉您未定义“图像”。

根据您的代码,.. / imports / api / tasks.js不会导出任何内容,这意味着

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

不会给您任何东西,实际上它将用null代替全局变量Images。 所以我认为解决方案是用以下方法替换导入:

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

或者,您可以将task.js放在/ common中,这将完成相同的工作

您需要导出Images集合才能将其导入其他文件,如下所示:

import { Mongo } from "meteor/mongo";

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM