【发布时间】:2021-10-24 14:53:57
【问题描述】:
我在 Meteor 项目中使用 Meteor Files 包(来自 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() 的错误。我收到一个涉及文件路径的 ENOENT 错误。图像肯定在那里并且路径是正确的(我在同一个文件夹和公用文件夹中都尝试过),所以我不知道为什么会这样。我尝试过重置项目,甚至重新安装 Meteor,但也没有解决问题。
【问题讨论】:
标签: javascript mongodb meteor