流星文件集合显示空时,试图在服务器端插入文件?



我在我的流星项目中使用流星文件包(来自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,然后import { Sources } from "imports/db/sourcesCollection.js",最后Sources.find({}).fetch(),返回一个空数组[]

总结一下,我的问题是:如果我的代码在我的服务器启动时成功运行,为什么我的集合在我的流星外壳中显示为空?编辑:在控制台中运行.addFile()语句返回一个FilesCollection对象,检查Sources.find({}).fetch()时集合仍然为空

编辑2:我添加了一个回调函数来显示来自addFile()的错误。我得到一个关于文件路径的enent错误。图像绝对存在,路径是正确的(我在同一文件夹和公共文件夹中都尝试过),所以我不知道为什么会发生这种情况。我试过重置项目,甚至重新安装流星,但这也没有解决它。

如果你遇到这个问题,这里是为我解决它的方法:

流星:Error: ENOENT当尝试使用node-gd访问映像时

相关内容

  • 没有找到相关文章

最新更新