我在我的流星项目中使用流星文件包(来自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()
时集合仍然为空
如果你遇到这个问题,这里是为我解决它的方法:
流星:Error: ENOENT当尝试使用node-gd访问映像时