繁体   English   中英

Meteor 尝试在服务器端插入文件时文件集合显示为空?

[英]Meteor Files Collection showing up empty when trying to insert files on server-side?

我在我的 Meteor 项目中使用 Meteor 文件 package(来自https://github.com/VeliovGroup/Meteor-Files )。 我想设置一个文件集合,但在从服务器端填充它时遇到问题。

这是我在/server/main.js中的相关代码:

import { Sources } from "/imports/db/sourcesCollection";


Meteor.startup(() => {
  // code to run on server at startup

  Sources.addFile("/images/bigLogo.png", {
    fileName: "bigLogo.png",
    type: "image/png",
    fileId: "abc123AwesomeId",
    meta: {},
  })
...

这是sourcesCollection.js

import { FilesCollection } from "meteor/ostrio:files";

const Sources = new FilesCollection({ collectionName: "Sources" });

export { Sources };

bigLogo.png是我项目中public/images目录下的一个 png 图像文件,我已经在其他文件中成功地使用了它。 作为完整性检查,为了测试这是否是文件路径问题,我还尝试将我的图像移动到与我的server/main.js文件相同的目录并将图像路径更改为./bigLogo.png ,但是徒劳无功。

当我的服务器启动时,我没有收到任何错误消息,所以看起来addFile()正在工作,但是当我通过 meteor shell 在服务器端检查我的集合时,它总是显示为一个空集合。 这是我正在做的检查:

首先,我运行meteor shell ,然后import { Sources } from "imports/db/sourcesCollection.js" ,最后返回一个空数组[]的 Sources.find Sources.find({}).fetch()

总而言之,我的问题是:如果我的代码在我的服务器启动时成功运行,为什么我的集合在我的 meteor shell 中显示为空?

编辑:在控制台中运行.addFile()语句返回一个 FilesCollection object,并且在检查Sources.find({}).fetch()时该集合仍然为空。

编辑 2:我添加了一个回调 function 来显示来自 addFile() 的错误。 我收到有关文件路径的 ENOENT 错误。 该图像绝对存在并且路径正确(我已经在同一文件夹和公共文件夹中尝试过),所以我不知道为什么会这样。 我试过重置项目,甚至重新安装 Meteor,但这也没有解决问题。

如果您遇到过这个问题,以下是为我解决的问题:

Meteor:错误:尝试使用 node-gd 访问图像时出现 ENOENT

暂无
暂无

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

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